论文部分内容阅读
(广西达译商务服务有限责任公司,广西 南宁 530007)
【摘 要】多语种翻译词汇是解决跨语言信息检索中未登录词问题的有效途径,而高质量的翻译词汇特别是专有名词、新词和命名实体难以在普通词典中找到。文章提出一种从维基百科中自动抽取出多语种翻译词汇的方法,主要通过在维基百科离线数据文件中根据其文件结构特征进行抽取。实验证明,该方法能够有效获取高质量的多语种翻译词汇。
【关键词】多语种翻译词汇;信息自动抽取;维基百科
【中图分类号】TP391.3 【文献标识码】A 【文章编号】1674-0688(2016)07-0129-05
0 引言
随着世界经济一体化的进展,各国之间互联网交流更为广泛、频繁,互联网信息的多语种特点,给交流带来的语言障碍日显突出。为解决语言障碍问题,跨语言信息检索(CLIR)[1]技术应运而生。跨语言信息检索给用户提供了一种使用自己熟悉的语言提交查询,检索其他语言文档的途径。跨语言信息检索技术让使用各种语言的信息用户也可以方便地利用日益丰富的多语种信息资源,解决不同语种间的交流障碍。根据解决查询条件和文档集的语言障碍的技术路线,把跨语言信息检索技术主要分为查询表达式翻译(Query Translation)、文献翻译(Document Translation)、不翻译(No Translation)和中间语种转换(Interlingual Representation)[2]。其中,查询翻译是CLIR中采用最广泛的方法,实现简单,速度快。该方法将用户提交的查询请求翻译成系统支持的多种语言,然后对不同语言的文档集进行检索。但由于查询中有很多词为专有名词,有很多新词、专业词汇和命名实体无法在系统词典中找到,导致对查询请求的翻译质量受到影响,这种现象被称为未登录词(Out of Vocabulary,OOV)问题。新词和专业词汇一般都是通过扩充双语词典来解决,而命名实体是一个开放集,无法通过扩充词典的方式来解决[3]。
维基百科(Wikipedia)是一个基于维基技术的全球性多语言百科全书协作计划,其大部分页面都可以由任何人使用浏览器进行阅览和修改。这本全球人民参与编写,自由、开放的在线百科全书是知识社会条件下用户参与、大众创新、开放协同的生动诠释[4]。截至2015年11月1日,維基百科条目数第一的英文维基百科已有500万个条目,所有版本共突破3 700个条目,已发展成为互联网上规模最大、使用最广泛的百科全书,也成为最大的资料来源网站之一,这为未登录词的挖掘提供了有利的条件。维基百科拥有253种不同语言的版本,无形中已经具备非常丰富的翻译资源。并且,由于其自由、人人均可编辑的特点,往往能够找到比较新、比较流行的词语。由于维基百科中有很多条目都存在着对应的多种语言版本,因此维基百科可以用于双语或多语词典的自动构建,进而应用于机器翻译、跨语言信息检索等。经过实验证实,使用维基百科能够有效地抽取多语种的翻译词汇,帮助解决跨语言检索中未登录词的问题,进而提升检索的准确度。
1 基本原理
在维基百科的内容页面中,有可能存在链接到不同语言版本维基百科的“跨语言链接”,这样读者可以很方便地查看另一语言内当前主题的相关内容。由于这些链接是以半人工的方式添加到页面,词汇的翻译质量比较高。维基百科内容页面如图1所示。
以英汉翻译词汇获取为例,在英文维基百科中输入关键词“Fifteen puzzle”进行查询,在返回结果页面的左下角区域为“Languages”,即链接到其他语言版本的链接,该链接的HTML信息中已经包含了经翻译后的词汇,抽取出来就是我们所想要的结果。
2 具体实现
具体的实现有2种途径:一是在线方式,即遍历词典,构造维基百科的URL,下载其内容页面实时分析抽取;二是先下载离线数据库,分析其文本结构再抽取。下面详细描述这2种方法。
2.1 在线方式
在线方式必须先分析清楚维基百科的URL结构和返回结果页面的HTML构成,然后使用程序遍历词典模拟请求得到返回结果页面,从中抽取出词条翻译结果。
2.1.1 构造查询请求
查询请求为:“http://”+语言代码+“.wikipedia.org/wiki/”+URI编码词条。
其中,“语言代码”为维基百科中的语言代码,见表1。
“URI编码词条”是指经过URI编码的关键词。
此外,由于中文有简体和繁体等几种版本的维基百科,与上述查询URL有此不同。
简体版本:http://zh.wikipedia.org/zh-cn/+URI编码词条;繁体版本:http://zh.wikipedia.org/zh-tw/+URI编码词条。
2.1.2 查询结果页面HTML分析
主要是分析页面中“语言列表”部分的HTML结构。该部分结构如下:每一种语种都是用一个标签表示。例如:
href="http://zh.wikipedia.org/wiki/,­;¨c ¤é 2">中文
注意Li标签的class属性,不同的语种用不同class属性的 结点表示。比如:
法语:class=interwiki-fr
意大利语:class=interwiki-it
日语:class=interwiki-ja
中文:class=interwiki-zh
越南语:class=interwiki-vi
通过这一点,我们可以轻易找到指定语种的内容:结点的title属性已经是指定词条的对应语种翻译词汇,也就是我们想要得到的结果。 2.1.3 具体实现过程
下面以使用Perl程序实现模拟维基百科Web请求获取汉语词条的越南语翻译词汇为例。
(1)汉语词典中取出中文词条AAA。
(2)对该中文词条进行URI编码:去除词条首尾空格,将非空格串用URI模块进行编码转换。
(3)构造维基百科网站关于该词条的中文简繁版Web请求的URL。
简体版:http://zh.wikipedia.org/zh-cn/XXX;繁体版:http://zh.wikipedia.org/zh-tw/XXX。
首先尝试下载繁体版本的页面。注意使用LWP::UserAgent(并设置代理信息)来下载,不能简单使用LWP::Simple来下载,因为维基百科有可能会拒绝没有代理信息的客户端访问。
如果失败则尝试下载简体版本页面。
(4)解析请求返回结果页面,分析页面中“语言列表”部分的HTML代码。使用模块HTML::TreeBuilder::Xpath解析整个网页,通过如下指定xql取出相应Html结点:
/html/body/descendant::li[@class="interwiki-vi"]/a
该xql模式表示解析器寻找页面中所有class=interwiki-vi 的结点下的超链接结点。之后,再取出属性title的内容:$item->attr(‘title’),即为目标翻译词汇。
其中,涉及文件输入、输出的地方均设置为使用UTF8。
2.2 离线方式
离线方式的原理是下载维基百科离线数据文件,根据文件结构特征,使用正则表达式从中抽取出翻译词汇。主要是根据页面结构和标记特征匹配页面中的“跨语言链接”标记,这些标记中包含有与当前页面主题词条对应的翻译词汇。标记由[语言代码:目标词汇]组成。比如,在越南数据库文件中某个页面内容中,与该页面词条A相对应的中文为B,则在其内容中有可能存在其链接到中文维基百科页面的标记:[[zh:B]]。如此,我们就得到一个翻译词汇对A/B。
由于当前多个语言的词目信息的链接是不完整的,为了获得更多的双语翻译词目,本文同时使用了离线的各个语言版本数据库进行抽取,并对结果进行合并。
2.2.1 下载离线版维基百科数据文件
维基百科提供所有完整内容的电子档案给有兴趣的用户。维基百科一般10天左右对当前数据做备份,并将数据文件进行共享分布。所有的资料都免费提供,可当做镜像站点,或是个人分析使用。维基百科在 http://dumps.wikimedia.com提供数据下载,页面包含有各种语言版本的数据包下载地址链接,点击进去,可以看到一个日期列表页面,这些日期表明是哪一天备份的版本。在此页面,也可看到维基百科备份了很多方面的数据,例如标题、页面、分类、重定向等,用户可以根据需求下载相应的数据包。维基百科下载页面如图2所示。
2.2.2 离线数据文件结构
维基百科下载数据文件解压后得到的文件是XML格式,其中包含了所有页面的详细内容。主要内容是 标签对,代表维基百科内容页。其内容结构如下:
哲学
19
13359183
2010-06-07T15:06:44Z
Xqbot
563591
機器人新增: [[so:Filasoof]]
……
每个page节点包含了条目标题、最新版本的贡献者、内容等信息。其中, 標签就是当前页面的词条名, 则是页面文本内容。
2.2.3 跨语言标记
在词条内容中,维基百科使用了自己的标记格式。双中括号“[”和“[”之间的内容表示维基展现出的页面中的超链接。从page节点中可以找到格式如[[语言代码:目标词汇]]的跨语言标记,这些标记内容就是当前词条对应的翻译词条。例如:
2.2.4 重定向标记
某些词条本身没找到跨语言标记,但可能使用重定向标记对词条进行重定向。通常出现在有多译名、简繁名、别名的情况等。可以将重定向到的目标词条的翻译作为此词条的翻译。例如,在中文维基百科中查询词条“撒切尔夫人”,它会重定向到词条“玛格丽特·撒切尔”的页面,然后可以通过页面上的跨语言标记找到对应英文翻译是Margaret Thatcher。
在离线数据page_article文件中,有2种方法表示重定向。一种是page节点中的标签,它的title属性表示重定向到的条目,例如 ;另一种是在text节点中的”#REDIRECT[[]]”标记,例如...#REDIRECT[[玛格丽特·撒切尔]]{{简繁重定向}}... 。使用正则表达式可以抽取出此类重定向词条。
另外一个方法是从维基百科的重定向数据文件包redirect.sql.gz中抽取。例如:viwiki-20100627-re-
direct.sql.gz,解压后得到的是sql文件,导入数据库后得到数据库表redirect,该表中保存有所有的词条目重定向记录。但由于数据字段是以“条目A的page_id->重定向到的条目B的标题”形式存在,因此需要用程序進行转换提取。
2.2.5 具体操作步骤
(1)从网上搜索下载维基百科公开的离线数据文件,不同语言版本的维基百科有不同的数据文件。根据用户需求下载不同版本的数据文件。
(2)解压数据文件。数据文件解压后得到非常庞大的XML文本文件。
(3)考虑到系统内存限制,需要使用脚本程序将数据库文件切分成多个小文件以便进行下一步的处理。
(4)读入待处理文件内容到内存,删除所有换行符。
(5)使用正则表达式找出所有page节点,即 ge>和标签对之间的内容,每一个就是一个单独的页面内容。
(6)使用正则表达式逐条对找到的页面内容找到条目标题。和 标签对之间内容即为标题,也就是当前词条。
(7)在当前页面内容中匹配搜索相应语种的跨语言标记,例如[[zh:XXX]],其中XXX即为相应的中文翻译词汇。
(8)除错和去重处理。根据规则对提取到的翻译词汇进行去重。比如,有些词条去除括号部分后中外词汇完全相同。
(9)使用正则表达式对数据文件提取解析重定向标记,并对结果进行合并去重。
(10)和重定向提取结果进行合并。
(11)和其他语言版本维基百科数据库解析提取结果进行合并。
2.3 实验结果
实验所使用的数据是中文维基百科和英文维基百科截止到2016年6月1日的数据包。下载数据文件zhwiki—
20160601—pages—articles.xml.bz2大小为1.17 GB,
解压后为5.35 GB;enwiki—20160601—pages—articles.xml.bz2大小为12 GB,解压后为53.4 GB。
从数据文件抽取汉—英双语翻译词汇的结果(见表2)。
从结果来看,绝对数量不算很多,其中重定向中解析到的翻译词汇占了相当大的比例。从词汇内容来看,基本上是专有名词、专业术语和新词。
3 结语
跨语言信息检索是解决互联网上语言障碍的有效技术途径,但由于需要同时解决机器翻译和信息检索两大难题,迄今进展缓慢。本文介绍了从维基百科中获取高质量的多语翻译词汇的方法,主要通过解析维基百科离线数据文件,根据文件结构、语言标识和重定向关系抽取出翻译词汇,帮助解决基于查询表达式翻译的跨语言信息检索中的未登录词问题。在未来的工作中将进一步利用规则和统计方法从维基百科正文内容中分析抽取翻译词汇。
参 考 文 献
[1]陈光华.跨越语言的藩篱[J].大学图书馆,1998,2(1):1-13.
[2]徐红姣,王惠临.跨语言信息检索中的查询翻译方法研究[J].数字图书馆论坛,2009(4):41-46.
[3]赵军.命名实体识别、排歧和跨语言关联[J].中文信息学报,2009,23(2):3-17.
[4]维基百科.维基百科,自由的百科全书[EB/OL].http://zh.wikipedia.org/wiki,2016-03-12.
[责任编辑:陈泽琦]
【作者简介】温家凯,男,任职于广西达译商务服务有限责任公司,研究方向:自然语言处理(深度学习、机器翻译、辅助翻译、垂直搜索、跨语言搜索等)和互联网应用。
【摘 要】多语种翻译词汇是解决跨语言信息检索中未登录词问题的有效途径,而高质量的翻译词汇特别是专有名词、新词和命名实体难以在普通词典中找到。文章提出一种从维基百科中自动抽取出多语种翻译词汇的方法,主要通过在维基百科离线数据文件中根据其文件结构特征进行抽取。实验证明,该方法能够有效获取高质量的多语种翻译词汇。
【关键词】多语种翻译词汇;信息自动抽取;维基百科
【中图分类号】TP391.3 【文献标识码】A 【文章编号】1674-0688(2016)07-0129-05
0 引言
随着世界经济一体化的进展,各国之间互联网交流更为广泛、频繁,互联网信息的多语种特点,给交流带来的语言障碍日显突出。为解决语言障碍问题,跨语言信息检索(CLIR)[1]技术应运而生。跨语言信息检索给用户提供了一种使用自己熟悉的语言提交查询,检索其他语言文档的途径。跨语言信息检索技术让使用各种语言的信息用户也可以方便地利用日益丰富的多语种信息资源,解决不同语种间的交流障碍。根据解决查询条件和文档集的语言障碍的技术路线,把跨语言信息检索技术主要分为查询表达式翻译(Query Translation)、文献翻译(Document Translation)、不翻译(No Translation)和中间语种转换(Interlingual Representation)[2]。其中,查询翻译是CLIR中采用最广泛的方法,实现简单,速度快。该方法将用户提交的查询请求翻译成系统支持的多种语言,然后对不同语言的文档集进行检索。但由于查询中有很多词为专有名词,有很多新词、专业词汇和命名实体无法在系统词典中找到,导致对查询请求的翻译质量受到影响,这种现象被称为未登录词(Out of Vocabulary,OOV)问题。新词和专业词汇一般都是通过扩充双语词典来解决,而命名实体是一个开放集,无法通过扩充词典的方式来解决[3]。
维基百科(Wikipedia)是一个基于维基技术的全球性多语言百科全书协作计划,其大部分页面都可以由任何人使用浏览器进行阅览和修改。这本全球人民参与编写,自由、开放的在线百科全书是知识社会条件下用户参与、大众创新、开放协同的生动诠释[4]。截至2015年11月1日,維基百科条目数第一的英文维基百科已有500万个条目,所有版本共突破3 700个条目,已发展成为互联网上规模最大、使用最广泛的百科全书,也成为最大的资料来源网站之一,这为未登录词的挖掘提供了有利的条件。维基百科拥有253种不同语言的版本,无形中已经具备非常丰富的翻译资源。并且,由于其自由、人人均可编辑的特点,往往能够找到比较新、比较流行的词语。由于维基百科中有很多条目都存在着对应的多种语言版本,因此维基百科可以用于双语或多语词典的自动构建,进而应用于机器翻译、跨语言信息检索等。经过实验证实,使用维基百科能够有效地抽取多语种的翻译词汇,帮助解决跨语言检索中未登录词的问题,进而提升检索的准确度。
1 基本原理
在维基百科的内容页面中,有可能存在链接到不同语言版本维基百科的“跨语言链接”,这样读者可以很方便地查看另一语言内当前主题的相关内容。由于这些链接是以半人工的方式添加到页面,词汇的翻译质量比较高。维基百科内容页面如图1所示。
以英汉翻译词汇获取为例,在英文维基百科中输入关键词“Fifteen puzzle”进行查询,在返回结果页面的左下角区域为“Languages”,即链接到其他语言版本的链接,该链接的HTML信息中已经包含了经翻译后的词汇,抽取出来就是我们所想要的结果。
2 具体实现
具体的实现有2种途径:一是在线方式,即遍历词典,构造维基百科的URL,下载其内容页面实时分析抽取;二是先下载离线数据库,分析其文本结构再抽取。下面详细描述这2种方法。
2.1 在线方式
在线方式必须先分析清楚维基百科的URL结构和返回结果页面的HTML构成,然后使用程序遍历词典模拟请求得到返回结果页面,从中抽取出词条翻译结果。
2.1.1 构造查询请求
查询请求为:“http://”+语言代码+“.wikipedia.org/wiki/”+URI编码词条。
其中,“语言代码”为维基百科中的语言代码,见表1。
“URI编码词条”是指经过URI编码的关键词。
此外,由于中文有简体和繁体等几种版本的维基百科,与上述查询URL有此不同。
简体版本:http://zh.wikipedia.org/zh-cn/+URI编码词条;繁体版本:http://zh.wikipedia.org/zh-tw/+URI编码词条。
2.1.2 查询结果页面HTML分析
主要是分析页面中“语言列表”部分的HTML结构。该部分结构如下:每一种语种都是用一个
注意Li标签的class属性,不同的语种用不同class属性的
法语:class=interwiki-fr
意大利语:class=interwiki-it
日语:class=interwiki-ja
中文:class=interwiki-zh
越南语:class=interwiki-vi
通过这一点,我们可以轻易找到指定语种的内容:结点的title属性已经是指定词条的对应语种翻译词汇,也就是我们想要得到的结果。 2.1.3 具体实现过程
下面以使用Perl程序实现模拟维基百科Web请求获取汉语词条的越南语翻译词汇为例。
(1)汉语词典中取出中文词条AAA。
(2)对该中文词条进行URI编码:去除词条首尾空格,将非空格串用URI模块进行编码转换。
(3)构造维基百科网站关于该词条的中文简繁版Web请求的URL。
简体版:http://zh.wikipedia.org/zh-cn/XXX;繁体版:http://zh.wikipedia.org/zh-tw/XXX。
首先尝试下载繁体版本的页面。注意使用LWP::UserAgent(并设置代理信息)来下载,不能简单使用LWP::Simple来下载,因为维基百科有可能会拒绝没有代理信息的客户端访问。
如果失败则尝试下载简体版本页面。
(4)解析请求返回结果页面,分析页面中“语言列表”部分的HTML代码。使用模块HTML::TreeBuilder::Xpath解析整个网页,通过如下指定xql取出相应Html结点:
/html/body/descendant::li[@class="interwiki-vi"]/a
该xql模式表示解析器寻找页面中所有class=interwiki-vi 的
其中,涉及文件输入、输出的地方均设置为使用UTF8。
2.2 离线方式
离线方式的原理是下载维基百科离线数据文件,根据文件结构特征,使用正则表达式从中抽取出翻译词汇。主要是根据页面结构和标记特征匹配页面中的“跨语言链接”标记,这些标记中包含有与当前页面主题词条对应的翻译词汇。标记由[语言代码:目标词汇]组成。比如,在越南数据库文件中某个页面内容中,与该页面词条A相对应的中文为B,则在其内容中有可能存在其链接到中文维基百科页面的标记:[[zh:B]]。如此,我们就得到一个翻译词汇对A/B。
由于当前多个语言的词目信息的链接是不完整的,为了获得更多的双语翻译词目,本文同时使用了离线的各个语言版本数据库进行抽取,并对结果进行合并。
2.2.1 下载离线版维基百科数据文件
维基百科提供所有完整内容的电子档案给有兴趣的用户。维基百科一般10天左右对当前数据做备份,并将数据文件进行共享分布。所有的资料都免费提供,可当做镜像站点,或是个人分析使用。维基百科在 http://dumps.wikimedia.com提供数据下载,页面包含有各种语言版本的数据包下载地址链接,点击进去,可以看到一个日期列表页面,这些日期表明是哪一天备份的版本。在此页面,也可看到维基百科备份了很多方面的数据,例如标题、页面、分类、重定向等,用户可以根据需求下载相应的数据包。维基百科下载页面如图2所示。
2.2.2 离线数据文件结构
维基百科下载数据文件解压后得到的文件是XML格式,其中包含了所有页面的详细内容。主要内容是
……
每个page节点包含了条目标题、最新版本的贡献者、内容等信息。其中,
2.2.3 跨语言标记
在词条内容中,维基百科使用了自己的标记格式。双中括号“[”和“[”之间的内容表示维基展现出的页面中的超链接。从page节点中可以找到格式如[[语言代码:目标词汇]]的跨语言标记,这些标记内容就是当前词条对应的翻译词条。例如:
2.2.4 重定向标记
某些词条本身没找到跨语言标记,但可能使用重定向标记对词条进行重定向。通常出现在有多译名、简繁名、别名的情况等。可以将重定向到的目标词条的翻译作为此词条的翻译。例如,在中文维基百科中查询词条“撒切尔夫人”,它会重定向到词条“玛格丽特·撒切尔”的页面,然后可以通过页面上的跨语言标记找到对应英文翻译是Margaret Thatcher。
在离线数据page_article文件中,有2种方法表示重定向。一种是page节点中的
direct.sql.gz,解压后得到的是sql文件,导入数据库后得到数据库表redirect,该表中保存有所有的词条目重定向记录。但由于数据字段是以“条目A的page_id->重定向到的条目B的标题”形式存在,因此需要用程序進行转换提取。
2.2.5 具体操作步骤
(1)从网上搜索下载维基百科公开的离线数据文件,不同语言版本的维基百科有不同的数据文件。根据用户需求下载不同版本的数据文件。
(2)解压数据文件。数据文件解压后得到非常庞大的XML文本文件。
(3)考虑到系统内存限制,需要使用脚本程序将数据库文件切分成多个小文件以便进行下一步的处理。
(4)读入待处理文件内容到内存,删除所有换行符。
(5)使用正则表达式找出所有page节点,即
(6)使用正则表达式逐条对找到的页面内容找到条目标题。
(7)在当前页面内容中匹配搜索相应语种的跨语言标记,例如[[zh:XXX]],其中XXX即为相应的中文翻译词汇。
(8)除错和去重处理。根据规则对提取到的翻译词汇进行去重。比如,有些词条去除括号部分后中外词汇完全相同。
(9)使用正则表达式对数据文件提取解析重定向标记,并对结果进行合并去重。
(10)和重定向提取结果进行合并。
(11)和其他语言版本维基百科数据库解析提取结果进行合并。
2.3 实验结果
实验所使用的数据是中文维基百科和英文维基百科截止到2016年6月1日的数据包。下载数据文件zhwiki—
20160601—pages—articles.xml.bz2大小为1.17 GB,
解压后为5.35 GB;enwiki—20160601—pages—articles.xml.bz2大小为12 GB,解压后为53.4 GB。
从数据文件抽取汉—英双语翻译词汇的结果(见表2)。
从结果来看,绝对数量不算很多,其中重定向中解析到的翻译词汇占了相当大的比例。从词汇内容来看,基本上是专有名词、专业术语和新词。
3 结语
跨语言信息检索是解决互联网上语言障碍的有效技术途径,但由于需要同时解决机器翻译和信息检索两大难题,迄今进展缓慢。本文介绍了从维基百科中获取高质量的多语翻译词汇的方法,主要通过解析维基百科离线数据文件,根据文件结构、语言标识和重定向关系抽取出翻译词汇,帮助解决基于查询表达式翻译的跨语言信息检索中的未登录词问题。在未来的工作中将进一步利用规则和统计方法从维基百科正文内容中分析抽取翻译词汇。
参 考 文 献
[1]陈光华.跨越语言的藩篱[J].大学图书馆,1998,2(1):1-13.
[2]徐红姣,王惠临.跨语言信息检索中的查询翻译方法研究[J].数字图书馆论坛,2009(4):41-46.
[3]赵军.命名实体识别、排歧和跨语言关联[J].中文信息学报,2009,23(2):3-17.
[4]维基百科.维基百科,自由的百科全书[EB/OL].http://zh.wikipedia.org/wiki,2016-03-12.
[责任编辑:陈泽琦]
【作者简介】温家凯,男,任职于广西达译商务服务有限责任公司,研究方向:自然语言处理(深度学习、机器翻译、辅助翻译、垂直搜索、跨语言搜索等)和互联网应用。