机器翻译词典合并

elisa-patch的Python项目详细描述


依赖关系

unidecode
emoji
*kenlm
fuzzy
scikit-learn
pyxdameraulevenshtein 
pygtrie
numpy     

*从github安装kenlm包装器:

pip install https://github.com/kpu/kenlm/archive/master.zip

用法

# Load english dictionaryenglish_vocab=load_english_vocab(...)english_vocab.update(load_english_vocab(...))# Load bilingual lexicon dictionaryforeign_dict=load_lexicon_norm(...)# Load target language modellm=kenlm.Model(...)# Train a ngram model if needed# ngram_train(foreign_dict, 'hin-tfidf-ngram_algo')# Ulf's romanizerromanizer=partial(romanize,romanization_path=...,language_code="hin")soundex_inst=fuzzy.DMetaphone()soundex_algo=lambdax:soundex_inst(x)[0].decode('utf-8')ifsoundex_inst(x)[0]isnotNoneelsexenglish_encoded_vocab={e:soundex_algo(e)foreinenglish_vocabife}# load the ngram modelngram_algo=pickle.loads(open(...,"rb").read())soundex_model=partial(soundex_similarity,encoded_english_vocab=english_encoded_vocab,romanizer=romanizer,soundex=soundex_algo)lev_model=partial(lev_similarity,backup=soundex_model)ngram_model=partial(ngram_similarity,model=ngram_algo,backup=lev_model)final_model=partial(exact_similarity,backup=ngram_model)forlineinopen(...):source,target=line.strip('\n').split('\t')oovs=extract_oov(target,source,english_vocab=english_vocab,romanization=True)best,mods=translate_oov(target,oovs,foreign_dict,final_model,lm.score)ifbest!=target:foroovinoovs:alt=list(mods[oov].keys())[0]trans=mods[oov][alt]debug.debug(f"{romanizer(oov)} -> {romanizer(alt)} : {list(trans)}")debug.debug(best)debug.debug("*"*100)

python -m elisa_patch --help

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
空字符串检查在java中未按预期工作   JavaSpringWebClient:自动计算主体的HMAC签名并将其作为头传递   foreach是否有一个Java等效的foreach循环和一个引用变量?   java如何在Eclipse中导入jar   使用特定第三方或java时lombok触发错误。*方法或构造函数   安卓 java将对象数组转换为int数组   java使一定百分比的JUnit测试通过   java Android:将Seekbar的一个值与另一个值进行比较   java将int数组(图像数据)写入文件的最佳方式是什么   java取代了系统。yml的构造函数内的getProperty   sqlite Java将公钥和私钥转换为字符串,然后再转换回字符串   安卓获取白色像素并将其保存到java opencv中的数组中   java为什么是ServerSocket。setSocketFactory静态?   Java数组似乎在不直接修改的情况下更改值