机器翻译的计算度量
cyzil的Python项目详细描述
西里尔
说明
Cyzil提供了一些工具,可以快速深入地分析序列生成模型,比如机器翻译模型。它包含一个Cython模块,提供标准度量的快速计算。它涵盖了edit distance (Levenstein Distance)和{a5}提出的BLEU评分。在
要求
- Python 3.7+
安装
Cyzil需要python3.7+。请运行以下代码进行安装:
pip install cyzil
命令行工具
用户指南
你可以在终端机上编辑你的距离。你要做的就是 指定引用文件(正确的翻译)和候选文件的路径的步骤 (由机器翻译模型生成的翻译)。 参考句和候选句应该分开存放,例如。 句子1\n句子2\n。。。句子k\n。 请参阅示例here。 为了计算分数,可以用空格或nltk tokenizer标记句子。 默认情况下,它标记句子 空白处。在
用法
下面的代码显示了语料库级别BLEU score的一个示例。它会打印出准确度,简短的点球和BLEU得分。在
^{pr2}$下面是语料库级编辑距离的一个例子。在
> cyzil-edit-distance-corpus \ --reference data/ref.en \ --candidate data/can.en \ --tokenizer nltk [0.5, 0.04545454680919647]
计算每对
Cyzil还计算每个参考候选对的度量,以便深入分析序列生成模型。输出可以存储在csv文件中。每行输出对应于每个参考候选对。在
下面是BLEU分数的一个例子。输出的第一列是精度,第二列是简洁性惩罚,最后一列是BLEU分数。在
> cyzil-bleu-points \ --reference data/ref.en \ --candidate data/can.en \ --ngram 4\ --tokenizer nltk \ --output output.csv
编辑距离可以计算如下。输出的第一列是edit distance,第二列是normalized edit distance。在
> cyzil-edit-distance-points \ --reference data/ref.en \ --candidate data/can.en \ --tokenizer nltk \ --output output.csv
有关详细信息,请参阅每个命令的帮助,例如cyzil-bleu-corpus -h
。在
Python API
Cyzil可以作为python模块导入到您的程序中。 下面显示了API调用的示例。 有关详细信息,请参阅User Guide。在
importcyzilreference=['this','is','a','test']candidate=['this','is','a','test']cyzil.bleu_sentence(reference,candidate,max_ngram=4)cyzil.bleu_corpus([reference],[candidate],max_ngram=4)cyzil.bleu_points([reference],[candidate],max_ngram=4)cyzil.edit_distance_sentence(reference,candidate)cyzil.edit_distance_corpus([reference],[candidate])cyzil.edit_distance_points([reference],[candidate])
- 项目
标签: