基于机器翻译的句子对齐工具

pypi-bleualign的Python项目详细描述


基于机器翻译的句子对齐工具

版权所有2010 里科·森里奇<;sennrich@cl.uzh.ch>;

苏黎世大学计算语言学小组的一个项目。

项目主页:http://github.com/rsennrich/bleualign

此程序是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它

一般信息

bleualign是一种在句子层次上对齐平行文本(即文本及其翻译)的工具。 除了源文本和目标文本之外,bleualign还需要至少一个文本的自动翻译。 然后根据源文本句子(翻译成目标语言)和目标文本句子之间的相似性(修改的bleu分数)进行对齐。 请参阅出版物一节了解更多详细信息。

获得自动翻译取决于用户。唯一的要求是翻译必须与源文本逐行对应(不插入或删除换行符)。

要求

该软件是在Linux上使用Python2.6开发的,但也应该支持较新版本的Python(包括3.x)和其他平台。 请向sennrich@cl.uzh.ch报告您遇到的任何问题

使用说明

bleualign的输入输出格式是每行一句话。 仅包含.eoa的行被视为硬分隔符(文章结尾)。 句子对齐不会跨越这些分隔符:可靠的分隔符可提高速度和性能,错误的分隔符会严重降低性能。

给定文件sourcetext.txt、targettext.txt和sourcetranslation.txt(后者是与sourcetext.txt对齐的句子),一个示例调用是

./bleualign.py -s sourcetext.txt -t targettext.txt –srctotarget sourcetranslation.txt -o outputfile

也可以在其他翻译方向上提供多个翻译和/或翻译。 Bleualign将在提供的每个翻译中运行一次,最终输出是各个运行的交叉点(即每个运行中生成的句子对)。

./bleualign.py -s sourcetext.txt -t targettext.txt –srctotarget sourcetranslation1.txt –srctotarget sourcetranslation2.txt –targettosrc targettranslation1.txt -o outputfile

./bleualign.py -h will show more usage options

为了便于批量处理多个文件,可以使用batch_align.py

python batch_align directory source_suffix target_suffix translation_suffix

示例:给定带有文件0.de0.fr0.trans等的目录0.trans0.de到目标语言的转换,则此命令将对齐所有文件:

python batch_align.py raw_files de fr trans

这将生成文件0.de.aligned0.fr.aligned

用作python模块

bleualign作为独立脚本工作,但也可以作为其他python项目的模块导入。 有关代码示例,请参见example/目录。如果想知道所有选项,可以在bleualign/aligner.py中看到aligner.default_options变量。

要将bleualign用作python模块,需要使用以下命令(从本地副本)安装包:

python setup.py install

BleuAlign软件包也可以直接从GitHub安装,安装方式为:

pip install git+https://github.com/rsennrich/Bleualign.git

出版物

算法在

Rico Sennrich,Martin Volk(2010年):
基于机器翻译的ocr生成的并行文本句子对齐。摘自:科罗拉多州丹佛市AMTA 2010会议记录。
里科·森里奇;马丁·沃克(2011):
基于mt的并行文本的迭代句子对齐。摘自:Nodalida 2011,北欧计算语言学会议,里加。

联系人

有关问题和反馈,请联系sennrich@cl.uzh.ch或使用github存储库。

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

推荐PyPI第三方库


热门话题
virtualbox无法从java移动共享文件夹中的文件   java如何连接Android 4.3.5(GA)的apache HttpClient库?   片段中的java Recyclerview未立即显示警报对话框结果   javac(n,r)计算器程序不工作   java使用BooleanQuery还是编写更多索引?   如何在java中设置y/n循环?   java不兼容的通用通配符捕获   java如何在安卓xml中编写数据绑定时的三元操作条件   java如何使用FileDialog?   java如何创建单元测试来检测是否有人使用错误的编码编辑了文件?   java如何从唯一的字符串生成唯一的int?   java gradletomcatplugin:log4j:WARN找不到记录器的附加程序   java我的动态编程解决方案(Kefa和第一步)在codeforces中有什么问题?   java每天更新两个数据库,使它们都包含相同的有效数据集   java如何检查给定的时间是否在时间限制之间   java在单个json POST上保存父级和子级   java如何获取Solr字段类型