This commit is contained in:
Rafał Jaworski 2019-06-13 12:34:19 +02:00
parent b95e4bde17
commit 7dda4c480a
17 changed files with 1080 additions and 60968 deletions

View File

@ -1,17 +0,0 @@
FROM ubuntu:16.04
# Set the locale
RUN apt-get update && apt-get install -y locales
RUN sed -i -e 's/# pl_PL.UTF-8 UTF-8/pl_PL.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
ENV LANG pl_PL.UTF-8
ENV LANGUAGE pl_PL:pl
ENV LC_ALL pl_PL.UTF-8
RUN apt-get install -y git cmake g++
RUN git clone https://git.wmi.amu.edu.pl/rjawor/concordia-server.git
RUN git clone https://github.com/clab/fast_align
RUN cd fast_align && mkdir build && cd build && cmake .. && make && cp fast_align ../../concordia-server/fast-aligner
CMD cd concordia-server/fast-aligner/ && make SRC_LANG=pl TRG_LANG=en CORPUS_NAME=opensubtitles_sample

46
Makefile Normal file
View File

@ -0,0 +1,46 @@
SRC_LANG=pl
TRG_LANG=en
CORPUS_NAME=opensubtitles_sample
SEPARATOR=@\#@
DICTIONARY_WEIGHT=3
all: corpora/$(CORPUS_NAME)/alignments.txt corpora/$(CORPUS_NAME)/src_clean.txt corpora/$(CORPUS_NAME)/src_clean.lem corpora/$(CORPUS_NAME)/trg_clean.txt
clean:
rm -f corpora/$(CORPUS_NAME)/*.norm
rm -f corpora/$(CORPUS_NAME)/*.lem
rm -f corpora/$(CORPUS_NAME)/*.dict
rm -f corpora/$(CORPUS_NAME)/src_clean.txt
rm -f corpora/$(CORPUS_NAME)/src_clean.lem
rm -f corpora/$(CORPUS_NAME)/trg_clean.txt
rm -f corpora/$(CORPUS_NAME)/ids_clean.txt
rm -f corpora/$(CORPUS_NAME)/falign_corpus.txt
rm -f corpora/$(CORPUS_NAME)/falign_result.txt
rm -f corpora/$(CORPUS_NAME)/alignments.txt
corpora/$(CORPUS_NAME)/alignments.txt: corpora/$(CORPUS_NAME)/falign_result.txt corpora/$(CORPUS_NAME)/src_clean.lem
./get_alignments.py corpora/$(CORPUS_NAME)/falign_result.txt corpora/$(CORPUS_NAME)/src_clean.lem > $@
corpora/$(CORPUS_NAME)/src.dict:
./collect_dict.py $(SRC_LANG) $(TRG_LANG) $(DICTIONARY_WEIGHT) > $@
corpora/$(CORPUS_NAME)/trg.dict:
./collect_dict.py $(TRG_LANG) $(SRC_LANG) $(DICTIONARY_WEIGHT) > $@
corpora/$(CORPUS_NAME)/src.norm corpora/$(CORPUS_NAME)/src.lem: corpora/$(CORPUS_NAME)/src.txt
./sentence_lemmatizer.py $< $(SRC_LANG) corpora/$(CORPUS_NAME)/src.norm corpora/$(CORPUS_NAME)/src.lem
corpora/$(CORPUS_NAME)/trg.norm corpora/$(CORPUS_NAME)/trg.lem: corpora/$(CORPUS_NAME)/trg.txt
./sentence_lemmatizer.py $< $(TRG_LANG) corpora/$(CORPUS_NAME)/trg.norm corpora/$(CORPUS_NAME)/trg.lem
corpora/$(CORPUS_NAME)/src_clean.txt corpora/$(CORPUS_NAME)/src_clean.lem corpora/$(CORPUS_NAME)/trg_clean.txt corpora/$(CORPUS_NAME)/ids_clean.txt corpora/$(CORPUS_NAME)/falign_corpus.txt: corpora/$(CORPUS_NAME)/src.txt corpora/$(CORPUS_NAME)/trg.txt corpora/$(CORPUS_NAME)/ids.txt corpora/$(CORPUS_NAME)/src.lem corpora/$(CORPUS_NAME)/trg.lem corpora/$(CORPUS_NAME)/src.dict corpora/$(CORPUS_NAME)/trg.dict
./prepare_corpus.py corpora/$(CORPUS_NAME)/src.norm corpora/$(CORPUS_NAME)/trg.norm corpora/$(CORPUS_NAME)/ids.txt corpora/$(CORPUS_NAME)/src.lem corpora/$(CORPUS_NAME)/trg.lem corpora/$(CORPUS_NAME)/src.dict corpora/$(CORPUS_NAME)/trg.dict corpora/$(CORPUS_NAME)/src_clean.txt corpora/$(CORPUS_NAME)/src_clean.lem corpora/$(CORPUS_NAME)/trg_clean.txt corpora/$(CORPUS_NAME)/ids_clean.txt corpora/$(CORPUS_NAME)/falign_corpus.txt $(SRC_LANG) $(TRG_LANG)
corpora/$(CORPUS_NAME)/falign_result.txt: corpora/$(CORPUS_NAME)/falign_corpus.txt
./fast_align -i $< -d -o -v > $@

View File

@ -1,3 +0,0 @@
#!/bin/sh
docker run -it --rm --mount src="$(pwd)"/corpora,target=/concordia-server/fast-aligner/corpora,type=bind concordia-aligner:Dockerfile

3
bad-words/parts.en Normal file
View File

@ -0,0 +1,3 @@
fuck
shit
nigga

4
bad-words/parts.pl Normal file
View File

@ -0,0 +1,4 @@
pierdol
pierdal
kurw
ścierw

70
bad-words/whole.en Normal file
View File

@ -0,0 +1,70 @@
arse
ass
asshole
assholes
ballsack
bastard
biatch
bitch
bitchcraft
bitchen
bitchy
blowjob
bollock
bollok
boner
boob
bugger
buttplug
cock
coon
crap
cunt
damn
dicker
dickerin
dickhead
dickheads
dickweed
dickweeds
dildo
dyke
fag
feck
felch
felching
fellate
fellatio
flange
fuck
fudgepacker
Goddamn
Horsedick
jizz
knobend
muff
needledick
nigga
niggas
nigger
penis
piss
prick
pussy
queer
scrotum
sh1t
shit
slut
sluttish
slutty
spunk
tosser
turd
twat
vagina
wank
wanker
whore
whorehouse
whoremonger

747
bad-words/whole.pl Normal file
View File

@ -0,0 +1,747 @@
chiwać
chuj
chuja
chujek
chujem
chujnia
chujowa
chujowe
chujowy
chuju
cip
cipa
cipą
cipe
cipę
cipie
cipy
dojeba
dojebac
dojebać
dojebaca
dojebal
dojebał
dojebala
dojebała
dojebalać
dojebalam
dojebałam
dojebalem
dojebałem
dojebić
dojebie
dojebię
dopieprzac
dopieprzać
dopierdal
dopierdala
dopierdalac
dopierdalać
dopierdalajacy
dopierdalający
dopierdalajaki
dopierdalal
dopierdalał
dopierdalala
dopierdalała
dopierdol
dopierdola
dopierdole
dopierdolę
dopierdoli
dopierdolic
dopierdolić
dopierdolica
dopierdolil
dopierdolił
dup
dupa
dupą
dupcia
dupe
dupeć
dupeczka
dupie
dupy
eba
ebać
ebaca
ebal
ebiać
ebić
hiwać
huj
huja
huje
hujek
hujem
hujnia
huju
jeba
jebac
jebać
jebaca
jebak
jebaka
jebal
jebał
jebana
jebaną
jebane
jebanej
jebani
jebank
jebanka
jebankiem
jebanko
jebany
jebanych
jebanym
jebanymi
jebcia
jebcie
jebia
jebią
jebiać
jebiaca
jebiąca
jebiacać
jebiacego
jebiącego
jebiacej
jebiącej
jebiacy
jebiący
jebiak
jebić
jebie
jebię
jebliwy
jebna
jebną
jebnac
jebnąc
jebnać
jebnąć
jebnal
jebnął
jebnel
jebnela
jebnęła
jebnie
jebnij
jebny
jebut
koorwa
koorwać
kórwa
kórwać
kurestwo
kurew
kurewska
kurewską
kurewski
kurewskiej
kurewsko
kurewstwo
kurwa
kurwą
kurwaa
kurwać
kurwach
kurwae
kurwami
kurwe
kurwę
kurwiący
kurwiarz
kurwic
kurwić
kurwica
kurwice
kurwidołek
kurwie
kurwik
kurwiki
kurwisić
kurwiska
kurwisko
kurwiszcz
kurwiszcze
kurwiszon
kurwiszona
kurwiszonem
kurwiszony
kurwo
kurwy
kutas
kutasa
kutasach
kutasami
kutasem
kutasie
kutasow
kutasów
kutasy
matkojebca
matkojebcą
matkojebcach
matkojebcami
matkojebcy
matkojebiec
nabarłożyć
najebac
najebać
najebal
najebał
najebala
najebała
najebana
najebaną
najebane
najebany
najebia
najebią
najebie
naopierdalac
naopierdalać
naopierdalal
naopierdalał
naopierdalala
naopierdalała
napierdalac
napierdalać
napierdalajacy
napierdalający
napierdalajaki
napierdolic
napierdolić
napierdolica
nawpierdalac
nawpierdalać
nawpierdalal
nawpierdalał
nawpierdalala
nawpierdalała
obsrywac
obsrywać
obsrywajacy
obsrywający
obsrywajaki
odpieprz
odpieprzac
odpieprzać
odpieprzy
odpieprzyć
odpieprzyl
odpieprzył
odpieprzyla
odpieprzyła
odpierdalac
odpierdalać
odpierdalajaca
odpierdalająca
odpierdalajacać
odpierdalajacy
odpierdalający
odpierdalajaki
odpierdol
odpierdoli
odpierdolic
odpierdolić
odpierdolica
odpierdolil
odpierdolił
odpierdolila
odpierdoliła
opieprzać
opieprzający
opierdal
opierdala
opierdalac
opierdalać
opierdalajacy
opierdalający
opierdalajaki
opierdol
opierdola
opierdolą
opierdoli
opierdolic
opierdolić
opierdolica
piczka
pieprznąć
pieprznieta
pieprzniety
pieprznięty
pieprzony
pieprzyć
pierdel
pierdlu
pierdol
pierdola
pierdolą
pierdolaca
pierdoląca
pierdolacać
pierdolacy
pierdolący
pierdolak
pierdole
pierdolę
pierdolec
pierdołek
pierdolenie
pierdoleniem
pierdoleniu
pierdoli
pierdolic
pierdolić
pierdolica
pierdolicie
pierdolil
pierdolił
pierdolila
pierdoliła
pierdolisz
pierdołki
pierdolnac
pierdolnąć
pierdolnal
pierdolnął
pierdolnel
pierdolnela
pierdolnęła
pierdolnić
pierdolnie
pierdolnieta
pierdolniety
pierdolnięty
pierdolnij
pierdolnik
pierdolona
pierdolone
pierdolony
pierdzący
pierdzić
pierdziec
pierdzieć
pizd
pizda
pizdą
pizde
pizdę
pizdnac
pizdnąć
pizdu
pizdy
pizdzie
piździe
podpierdal
podpierdala
podpierdalac
podpierdalać
podpierdalajacy
podpierdalający
podpierdalajaki
podpierdol
podpierdoli
podpierdolic
podpierdolić
podpierdolica
pojeb
pojeba
pojebac
pojebać
pojebaca
pojebala
pojebalo
pojebami
pojebanego
pojebanemu
pojebani
pojebany
pojebanych
pojebanym
pojebanymi
pojebem
popierdal
popierdala
popierdalac
popierdalać
popierdol
popierdoleni
popierdoli
popierdolic
popierdolić
popierdolica
popierdolone
popierdolonego
popierdolonemu
popierdolony
popierdolonym
porozpierdal
porozpierdala
porozpierdalac
porozpierdalać
poruchac
poruchać
przejebac
przejebać
przejebaca
przejebane
przepierdal
przepierdala
przepierdalac
przepierdalać
przepierdalajaca
przepierdalająca
przepierdalajacać
przepierdalajacy
przepierdalający
przepierdalajaki
przepierdolic
przepierdolić
przepierdolica
przyjeba
przyjebac
przyjebać
przyjebaca
przyjebal
przyjebał
przyjebala
przyjebała
przyjebali
przyjebie
przypieprzac
przypieprzać
przypieprzajaca
przypieprzająca
przypieprzajacać
przypieprzajacy
przypieprzający
przypieprzajaki
przypierdal
przypierdala
przypierdalac
przypierdalać
przypierdalajacy
przypierdalający
przypierdalajaki
przypierdol
przypierdoli
przypierdolic
przypierdolić
przypierdolica
qrwa
qrwać
rozjeba
rozjebac
rozjebać
rozjebaca
rozjebała
rozjebią
rozjebić
rozjebie
rozpierdal
rozpierdala
rozpierdalac
rozpierdalać
rozpierdol
rozpierdole
rozpierdoli
rozpierdolic
rozpierdolić
rozpierdolica
rozpierduch
rozpierducha
skurwić
skurwiel
skurwiela
skurwielać
skurwiele
skurwielem
skurwielu
skurwysyn
skurwysyna
skurwysynem
skurwysyno
skurwysynow
skurwysynów
skurwysynski
skurwysyński
skurwysynstwo
skurwysyństwo
skurwysynu
skurwysyny
śmierdziel
śmierdzielić
spieprz
spieprza
spieprzac
spieprzać
spieprzaj
spieprzaja
spieprzają
spieprzajaca
spieprzająca
spieprzajacać
spieprzajacy
spieprzający
spieprzajaki
spieprzajcie
spierdal
spierdala
spierdalac
spierdalać
spierdalajacy
spierdalający
spierdalajaki
spierdalal
spierdalał
spierdalala
spierdalała
spierdalalcie
spierdalalić
spierdol
spierdola
spierdolą
spierdoli
spierdolic
spierdolić
spierdolica
spierdoliła
spierdoliło
srac
srać
sraca
sraj
srajac
srając
srajacy
srający
srajaki
sukinsyn
sukinsyno
sukinsynom
sukinsynow
sukinsynów
sukinsynowi
sukinsyny
udupić
ujeba
ujebac
ujebać
ujebaca
ujebal
ujebał
ujebala
ujebała
ujebana
ujebany
ujebie
upierdal
upierdala
upierdalac
upierdalać
upierdol
upierdola
upierdolą
upierdoleni
upierdoli
upierdolic
upierdolić
upierdolica
wjeba
wjebac
wjebać
wjebąć
wjebaca
wjebia
wjebią
wjebiać
wjebić
wjebie
wjebiecie
wjebiemy
wjebieta
wkurew
wkurwi
wkurwia
wkurwią
wkurwiac
wkurwiać
wkurwiacie
wkurwiają
wkurwiajaca
wkurwiająca
wkurwiajacać
wkurwiajacy
wkurwiający
wkurwiajaki
wkurwial
wkurwiał
wkurwiali
wkurwic
wkurwić
wkurwice
wkurwicie
wkurwimy
wpierdalac
wpierdalać
wpierdalajacy
wpierdalający
wpierdalajaki
wpierdol
wpierdolic
wpierdolić
wpierdolica
wpizd
wpizdu
wyjeba
wyjebac
wyjebać
wyjebąć
wyjebaca
wyjebał
wyjebała
wyjebali
wyjebały
wyjebia
wyjebią
wyjebiać
wyjebić
wyjebie
wyjebiecie
wyjebiemy
wyjebiesz
wyjebieta
wypieprz
wypieprza
wypieprzac
wypieprzać
wypieprzal
wypieprzał
wypieprzala
wypieprzała
wypieprzy
wypieprzyć
wypieprzyl
wypieprzył
wypieprzyla
wypieprzyła
wypierdal
wypierdala
wypierdalac
wypierdalać
wypierdalaj
wypierdalal
wypierdalał
wypierdalala
wypierdalała
wypierdol
wypierdola
wypierdolą
wypierdoli
wypierdolic
wypierdolić
wypierdolica
wypierdolicie
wypierdolil
wypierdolił
wypierdolila
wypierdoliła
wypierdolili
wypierdolimy
zajeba
zajebac
zajebać
zajebaca
zajebała
zajebali
zajebana
zajebane
zajebani
zajebany
zajebanych
zajebanym
zajebanymi
zajebia
zajebią
zajebiać
zajebial
zajebiał
zajebiala
zajebić
zajebie
zajebisć
zajebiscie
zajebiście
zajebista
zajebiste
zajebisty
zajebistych
zajebistym
zajebistymi
zapieprz
zapieprza
zapieprzą
zapieprzy
zapieprzyc
zapieprzyć
zapieprzyce
zapieprzycie
zapieprzyl
zapieprzył
zapieprzyla
zapieprzyła
zapieprzymy
zapieprzysz
zapierdal
zapierdala
zapierdalac
zapierdalać
zapierdalaj
zapierdalaja
zapierdalajacy
zapierdalający
zapierdalajaki
zapierdalajcie
zapierdalal
zapierdalał
zapierdalala
zapierdalała
zapierdalali
zapierdol
zapierdola
zapierdolą
zapierdoli
zapierdolic
zapierdolić
zapierdolica
zapierdolil
zapierdolił
zapierdolila
zapierdoliła
zapierniczać
zapierniczający
zasrać
zasranym
zasrywać
zasrywający
zesrywać
zesrywający
zjeba
zjebac
zjebać
zjebaca
zjebal
zjebał
zjebala
zjebała
zjebali
zjebana
zjebią
zjebić
zjeby

38
censor_sources.py Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys, re, os
raw_profanity_whole_pattern = r'\b('
raw_profanity_parts_pattern = '('
for profanity_file_path in os.listdir('bad-words'):
with open('bad-words/'+profanity_file_path) as pf:
if profanity_file_path.startswith('whole'):
for word in pf:
raw_profanity_whole_pattern += word.rstrip()+'|'
else:
for word in pf:
raw_profanity_parts_pattern += word.rstrip()+'|'
raw_profanity_whole_pattern = raw_profanity_whole_pattern[:-1]+r')\b'
raw_profanity_parts_pattern = raw_profanity_parts_pattern[:-1]+')'
profanity_whole_pattern = re.compile(raw_profanity_whole_pattern, re.IGNORECASE)
profanity_parts_pattern = re.compile(raw_profanity_parts_pattern, re.IGNORECASE)
with open(sys.argv[1]) as sources_file:
for line in sources_file:
line = line.rstrip()
found_whole = re.search(profanity_whole_pattern, line)
found_parts = re.search(profanity_parts_pattern, line)
if found_whole or found_parts:
censored = re.sub(profanity_whole_pattern, '*'*5,line)
censored = re.sub(profanity_parts_pattern, '*'*5,censored)
print(censored)
sys.stderr.write('Censored: %s to %s\n' % (line, censored))
else:
print(line)

19
collect_dict.py Executable file
View File

@ -0,0 +1,19 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys, os, bz2
src_lang = sys.argv[1]
trg_lang = sys.argv[2]
weight = int(sys.argv[3])
dictionaries_path = '../dictionaries'
for dname in os.listdir(dictionaries_path):
src_path = '%s/%s/%s.bz2' % (dictionaries_path, dname, src_lang)
trg_path = '%s/%s/%s.bz2' % (dictionaries_path, dname, trg_lang)
if os.path.isfile(src_path) and os.path.isfile(trg_path):
with bz2.open(src_path, 'rt') as src_dict_file:
for line in src_dict_file:
for i in range(weight):
print(line.strip())

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

25
get_alignments.py Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
with open(sys.argv[1]) as falign_result, open(sys.argv[2]) as src_clean_lem:
for line in src_clean_lem:
src_line_lem = line.strip()
falign_alignment_pairs = falign_result.readline().rstrip().split()
falign_map = {}
for pair in falign_alignment_pairs:
numbers = pair.split('-')
s = int(numbers[0])
t = int(numbers[1])
if not s in falign_map:
falign_map[s] = []
falign_map[s].append(t)
res = []
for i in range(len(src_line_lem.split())):
if i in falign_map:
res.append(falign_map[i])
else:
res.append([])
print(res)

80
prepare_corpus.py Executable file
View File

@ -0,0 +1,80 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys, re, os
def readProfanityPattern(lang, whole):
result = None
if whole:
file_path = 'bad-words/whole.'+ lang
else:
file_path = 'bad-words/parts.'+ lang
if os.path.isfile(file_path):
raw_pattern = ''
if not whole:
raw_pattern = r'\b'
raw_pattern += '('
with open(file_path) as profanity_file:
for line in profanity_file:
raw_pattern += line.rstrip() + "|"
raw_pattern = raw_pattern[:-1] + ')'
if not whole:
raw_pattern += r'\b'
result = re.compile(raw_pattern)
return result
def containsProfanity(pattern, sentence):
if pattern is None:
return False
else:
m = re.search(pattern, sentence)
if m:
#sys.stderr.write('Found profanity in sentence: %s\n' % sentence)
return True
else:
return False
max_tokens = 100
max_ratio = 4.0
#./prepare_corpus.py corpora/$(CORPUS_NAME)/src.txt corpora/$(CORPUS_NAME)/trg.txt corpora/$(CORPUS_NAME)/ids.txt corpora/$(CORPUS_NAME)/src.lem corpora/$(CORPUS_NAME)/trg.lem corpora/$(CORPUS_NAME)/src.dict corpora/$(CORPUS_NAME)/trg.dict corpora/$(CORPUS_NAME)/src_clean.txt corpora/$(CORPUS_NAME)/src_clean.lem corpora/$(CORPUS_NAME)/trg_clean.txt corpora/$(CORPUS_NAME)/ids_clean.txt corpora/$(CORPUS_NAME)/falign_corpus.txt $SRC_LANG $TRG_LANG
src_lang = sys.argv[13]
trg_lang = sys.argv[14]
src_profanity_whole_pattern = readProfanityPattern(src_lang, True)
src_profanity_parts_pattern = readProfanityPattern(src_lang, False)
trg_profanity_whole_pattern = readProfanityPattern(trg_lang, True)
trg_profanity_parts_pattern = readProfanityPattern(trg_lang, False)
with open(sys.argv[1]) as src, open(sys.argv[2]) as trg, open(sys.argv[3]) as ids, open(sys.argv[4]) as src_lem, open(sys.argv[5]) as trg_lem, open(sys.argv[6]) as src_dict, open(sys.argv[7]) as trg_dict, open(sys.argv[8], 'w') as src_clean, open(sys.argv[9], 'w') as src_clean_lem, open(sys.argv[10], 'w') as trg_clean, open(sys.argv[11], 'w') as ids_clean, open(sys.argv[12], 'w') as falign_corpus:
for line in src:
src_line_orig = line.strip()
trg_line_orig = trg.readline().strip()
id_orig = ids.readline().strip()
src_line_lem = src_lem.readline().strip()
trg_line_lem = trg_lem.readline().strip()
src_token_count = len(src_line_lem.split())
trg_token_count = len(trg_line_lem.split())
if (src_token_count > 0 and trg_token_count > 0 and src_token_count <= max_tokens and trg_token_count <= max_tokens):
ratio = float(src_token_count/trg_token_count) if src_token_count > trg_token_count else float(trg_token_count/src_token_count)
if (ratio <= max_ratio
and (not containsProfanity(src_profanity_whole_pattern, src_line_lem))
and (not containsProfanity(src_profanity_parts_pattern, src_line_lem))
and (not containsProfanity(trg_profanity_whole_pattern, trg_line_lem))
and (not containsProfanity(trg_profanity_parts_pattern, trg_line_lem))
):
src_clean.write(src_line_orig+"\n")
src_clean_lem.write(src_line_lem+"\n")
trg_clean.write(trg_line_orig+"\n")
ids_clean.write(id_orig+"\n")
falign_corpus.write("%s ||| %s\n" % (src_line_lem, trg_line_lem))
for line in src_dict:
src_word = line.rstrip()
trg_word = trg_dict.readline().rstrip()
falign_corpus.write("%s ||| %s\n" % (src_word, trg_word))

48
sentence_lemmatizer.py Executable file
View File

@ -0,0 +1,48 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import json
import requests
import sys
BUFFER_SIZE = 500
def lemmatize_sentences(language_code, sentences):
data = {
'lemmatize': True,
'language':language_code,
'sentences':sentences
}
response = requests.post(url = 'http://127.0.0.1:10002/preprocess', json = data)
response_json = json.loads(response.text)
result = {'normalized':[], 'lemmatized':[]}
for processed_sentence in response_json['processed_sentences']:
result['normalized'].append(processed_sentence['normalized'])
result['lemmatized'].append(processed_sentence['tokens'])
return result
def write_result(result, norm_file, lem_file):
for s in result['normalized']:
norm_file.write(s+'\n')
for s in result['lemmatized']:
lem_file.write(s+'\n')
file_name = sys.argv[1]
language_code = sys.argv[2]
norm_output_name = sys.argv[3]
lem_output_name = sys.argv[4]
sentences_buffer = []
with open(file_name) as in_file, open(norm_output_name, 'w') as out_norm, open(lem_output_name, 'w') as out_lem:
for line in in_file:
sentences_buffer.append(line.rstrip())
if len(sentences_buffer) == BUFFER_SIZE:
write_result(lemmatize_sentences(language_code,sentences_buffer), out_norm, out_lem)
sentences_buffer = []
if len(sentences_buffer) > 0:
write_result(lemmatize_sentences(language_code,sentences_buffer), out_norm, out_lem)

View File

@ -1,3 +0,0 @@
#!/bin/sh
docker build --no-cache --tag="concordia-aligner:Dockerfile" .