双语平行语料爬虫器设计与开发_第1页
双语平行语料爬虫器设计与开发_第2页
双语平行语料爬虫器设计与开发_第3页
双语平行语料爬虫器设计与开发_第4页
双语平行语料爬虫器设计与开发_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、苏州大学本科生毕业设计(论文)目 录前 言1第一章绪 论21.1研究背景及意义21.2当前的一些工作概述31.3本文的主要工作及创新点51.4本文的篇章结构5第二章 相关知识介绍72.1 简单流程72.2 Common Crawl介绍82.3 Bitextor介绍92.4 BLEU值介绍10第三章多语言网站获取技术123.1获取多语言网站的难点123.2研究现状分析123.3 从Common Crawl中获取多语言网址133.3.1 语言标签字典143.3.2 URL过滤143.3.3 实验结果153.4本章小结15第四章双语平行语料提取技术174.1一些平行页面评判方法174.1.1基于文件

2、基本信息的过滤技术174.1.2基于URL的模式匹配技术174.1.3基于HTML结构的技术174.1.4 基于单词对齐的技术184.2实验与分析184.2.1 整体流程184.2.2 一些注意点194.2.3 实验结果与分析194.3本章小结22第五章双语平行语料质量分析与过滤235.1现有的一些双语平行语料过滤技术235.2通过测BLEU值过滤双语平行语料245.3实验结果与分析245.4本章小结26第六章 总结与展望276.1本文总结276.2后续工作展望27参考文献29致 谢31摘 要双语平行语料对于许多任务来说是一种十分重要的资源,尤其是在自然语言处理的领域,有着丰富的使用。而在自然

3、语言处理中,机器翻译更是十分依赖平行语料的一种。机器翻译的质量直接依赖于平行语料的数量以及质量。因此,获取大量的双语平行语料是一个亟待解决的问题。本文主要提出了一整套完整的双语语料获取技术。该技术意在从纷杂的互联网网站中找到多语言的网站,然后获取网站的页面,提取平行语料。现有的技术很难大规模,全面得(地)发现网络上存在的所有多语言网站并爬取平行语料。如果随机寻找多语言的网站,会浪费大量的时间,可能会浪费很多时间在检测普通的网页上。基于此,有必要针对上述技术问题,提供一种发现全网多语言网站并获得平行语料的方法,通过开源的数据集,利用语言标签的方法,得到候选的多语言网站的URL,然后采用开源的工具

4、快速获取平行语料。使用该方法虽然可以快速得到平行语料,但是语料的质量参差不齐,所以还需要建立一种评判所得到的双语平行语料并筛选其中质量较低的双语平行语料的机制。关键词:双语平行语料;多语言网站;筛选AbstractBilingual parallel corpus is a very important resource for many tasks, especially in the field of Natural Language Processing(NLP). In Natural Language Processing, machine translation is very d

5、ependent on parallel corpus. The quality of machine translation directly depends on the quantity and quality of parallel corpus. Therefore, obtaining a large number of bilingual parallel corpus is an urgent problem to be solved.This article mainly proposes a complete set of bilingual corpus acquisit

6、ion technology. The technology is intended to find multi-language websites from confusing internet websites, and then obtain website pages and extract parallel corpora. The existing technology is difficult to get and crawl all the multi-language websites in large-scale existing on the Internet. If y

7、ou are looking for a multilingual site at random, you will waste a lot of time detecting common web pages. Based on this, it is necessary to provide a method for discovering all-language multilingual websites and obtaining parallel corpus according to the above technical problems. By using open sour

8、ce datasets and language tagging methods, URLs of candidate multilingual websites are obtained, and then with open sourced tool we quickly acquires parallel corpus. Although this method can quickly obtain parallel corpus, the quality of the corpus varies. Therefore, it is necessary to establish a bi

9、lingual parallel corpus obtained by judging and to screen the mechanism of bilingual parallel corpus with lower quality.Keywords: Bilingual parallel corpus; Multilingual websites; filter31前 言双语平行语料对于许多任务来说是一种十分重要的资源,尤其是在自然语言处理的领域,有着丰富的使用。而在自然语言处理中,机器翻译更是十分依赖平行语料的一种。机器翻译的质量直接依赖于平行语料的数量以及质量。在机器翻译的任务中,

10、汉英,阿英以及许多欧洲语言对具有千万级乃至更高的平行语料,而在其他的大部分语言对上,很难获得平行语料。因此,获得平行语料是大部分语言相互翻译的重要的第一步。目前网络上可以获取的大量的平行语料主要是世界主要语种的多语新闻,欧盟内各种会议以及文件的多种翻译版本,维基百科内容以及一些被翻译的书籍等。互联网是获得平行文本的重要资源。许多网站都是多语种的,这更是获得平行语料的重要资源。而由于互联网内容的复杂混乱以及规模庞大,很难集中得获取大量平行语料。从互联网中提取双语平行语料的一般步骤是:发现多语言的网站,下载该网站的页面文件,对文件进行预处理,正文提取等处理,提取候选对齐页面,提取候选双语平行语料,

11、对候选语料进行过滤等一系列步骤。目前已经有相当多的工作研究如何从互联网中提取这样的双语平行语料,并且提出了整套的系统解决方案。本文的主要研究对象是如何快速发现多语言网站,利用现有的工具加以改进以便快速得提取出候选平行语料,以及如何对提取出的候选语料进行过滤处理。至于预处理,正文提取,提取候选页面及语料的过程不会有太过深入的研究。第一章绪 论在本章我们首先简单介绍了了获取双语平行语料技术的时代需求和意义,其次简单介绍了当前一些工作的进展及研究,还有这些工作对于本文的启发,并论述了本文所做的主要的工作以及创新点。同时,在本章的最后一段介绍了论文的篇章结构。1.1研究背景及意义现如今,世界上规模最大

12、且内容丰杂的文本语料库就是互联网。事实上,在过去的几年里,已经有了许多方法将互联网视为语料库,尤其是文本语料库,并且从中获利。而我们的方法主要是将互联网视作双语平行语料的来源。众所周知,许多网站的全部网页,或者是部分都是双语或多种语言的,如图1.1所示。这意味着它们中的许多网页都可以成为双语语料。图1.1 苹果官网支持的亚洲地区语言选项目前,双语语料已经成了机器翻译领域的一个重要的知识来源。尤其是在基于语料的机器翻译,尤其依赖双语语料。基于样例的机器翻译(EBMT)和统计机器翻译(SMT)需要这种资源用于训练。双语平行语料库的存在是构建高效统计机器翻译系统的最重要的先决条件。语料库的各种属性,

13、如数量和质量,都会对翻译结果产生很大的影响。近年来,随着深度学习的火热,以及神经机器翻译逐渐成为主流,双语平行预料的重要性进一步提升。网络可以被认为是大量平行数据的不断增长的来源,可以被挖掘并纳入训练的过程,从而提高机器翻译系统的质量。 1.2当前的一些工作概述现有的一些著名的双语平行语料获取工具包括STRAND,PaCO2以及Mining Common Crawl等,它们的简单区别如表1.1所示。著名的STRAND系统使用搜索引擎AltaVista提供的表达式搜索功能同时寻找两种类型的网站1:(1)一个parent网页包含多个相同内容语言不同的网页,(2)一个网页包含指向平行网页的链接。通过

14、使用这种技术可以方便地得到多语言网站。不过可惜的是,AltaVista搜索引擎已经不再提供服务2。在得到多语言网站,下载对应网站的这些页面后,从众多页面中提取出平行网页的方法大概有这些依据:(1)平行网页往往具有类似的url结构。(2)平行网页的文件大小不会相差太大。(3)平行网页的html标签结构往往十分得相似。表1.1 几种著名语料爬取工具比较项目名称url来源数据量获取速度STRANDAltaVista(失效)全网随机获取一般PaCO2任意搜索引擎全网随机获取一般Mining Common CrawlCommon CrawlCommon Crawl数据集特别快另外一种是一个名为PaCO2

15、的系统2。PaCO2 使用搜索引擎来获取候选待验证的多语言网站。作为输入,它需要一对语言对和来自两种语言中优选较不频繁的五十个或更多的词行化的词列表。然后它为搜索引擎生成查询。 这些查询是来自所提供单词列表的三元组。查询搜索引擎时,系统使用其API来请求其他语言的结果。这样,就会创建一个包含候选网站URL的列表。获取后,会对列表中的URL逐个进行排查,筛选出确认是多语言的网站(如图1.2所示)。随后会开始进行常规的检测平行网页,将平行页面在句子层面对齐的后续处理。图1.2 PaCO2检测流程图l Key: http:/www.ksi.mff.cuni.cz/*/.l Value:n http:

16、/www.ksi.mff.cuni.cz/en/ (original URL);n English (language associated with the code);n full HTML structure of the web page.图1.3 key-value字典还有一个有趣的项目Mining Common Crawl3是本次工作的灵感来源。Mining Common Crawl专注于从大规模(超过32TB)的网页数据集中寻找平行的语句,它使用两到三个字符的语言代码集合,从大规模的网页中提取URL包含这样语言代码的网页,将代码替换为“*”,并输出键值对(如图1.3所示),这样具

17、有相同键的URL形成字典。然后一次性下载所有的符合这种条件的页面,随后使用经典的STRAND系统的方法进行后续的处理。1.3本文的主要工作及创新点本文主要的工作点在于建立一套完整的获取双语平行语料的系统。这个系统包括获取候选的多语言URL,快速获取网页,处理网页并获取平行语料,以及对获取到的平行语料进行质量过滤。本文主要工作及创新点如下:(1)对如何快速得从互联网中发现多语言网站的研究。这是本文的创新点之一。通过对以往得一些项目和系统的分析,找出它们是如何大规模发现多语言网站的,从而利用Common Crawl提供的索引数据快速得从大量的无用数据中提取出对自己有用的信息4,从而找到候选的多语言

18、网站URL。(2)提出了一套根据第一步获得的候选多语言网站开始大规模获得双语平行语料的方法。这一步骤中,主要采用了开源的项目Bitextor5,并根据需要进行了改进。采用了批处理的方式进行页面爬取以及处理,将处理的中间结果以TXT文本格式保存而非原始的网页数据,这样在保证了一定的获取速度的同时,不会对计算机硬件有很高的要求。实验结果表明,这种方法对电脑性能要求很低的同时速度也不会太慢。(3)提出了基于BLEU值的平行语料过滤技术。这是本文的创新点之二。一些主流的判断句子的方法是建立语言模型,而这种方法往往需要大量的双语训练语料训练很久才能取得较好的效果。而本文选择了一种测BLEU值得方法。通过

19、调用翻译API将某种语言转换成另一种,然后对每对句子打分,评判得标准就是BLEU值。该方法在速度以及准确度上有着明显优势。1.4本文的篇章结构本文总计共分为五个章,其中各个章节内容如下所示:第一章:绪论。本章简单说明了研究双语平行语料的时代背景及其中的意义、当前一些双语平行语料获取系统的工作、本文的主要工作及主要创新点,最后介绍了本文的组织结构。第二章:相关知识介绍。本章先介绍了本项目的基本流程,然后详细介绍了在下面的章节中会用到的一些现有的技术。第三章:多语言网站获取技术。本章详细阐述了现有的多语言网站获取技术及其原理,然后详细得介绍了本文采取得获取技术。最后给出了实验的步骤和结果。第四章:

20、双语平行语料提取技术。主要介绍了平行语料得获取,简单介绍了一些在提取平行语料中得技术,详细介绍了本文用到的开源工具Bitextor,并介绍了具体的实验流程以及得到的结果。最后对得到的结果进行一些分析。第五章:双语平行语料过滤与分析。主要介绍了如何解决获取到的文本质量良莠不齐的问题,提出了使用BLEU值判断质量的方法,并解决了其中的几个难点。第六章:总结与展望。总结全文,提出未来工作的设想与展望。第二章 相关知识介绍本章介绍了本项目的基本流程,给出了流程图,然后详细介绍了在下面的章节中会用到的一些现有的技术与项目,包括Common Crawl,Bitextor以及BLEU值。2.1 简单流程整个

21、项目总体分为三个部分:获取多语言网站,从多语言网站提取双语平行语料,最后对获得的双语平行语料进行过滤处理。如图2.1所示,我们首先从Common Crawl 中获取URL信息的索引文件,然后为获取的索引文件构建一个包含各种语言标签的字典,根据字典对索引文件过滤处理,得到候选多语言URL网址。完成了这一步,就可以开始获取双语平行语料。图2.1 获取多语言网站流程获取双语平行语料同样包含多个部分,如图2.2所示。首先使用httrack批量下载候选网址页面,随后使用bitextor-ett2lett识别页面语言,提取页面正文,再对每个网址的页面语言进行分析,确定语言分布,最后根据语言需要对某些网址使

22、用bitextor,提取平行页面,句对。得到了双语平行语料后就可以通过结合机器翻译和测bleu值的方式来过滤质量较低的双语平行语料。图2.2 双语平行语料提取技术在本项目中用到了Common Crwal, Httrack, Bitextor以及bleu值,再下面会进行详细的介绍。2.2 Common Crawl介绍Common Crawl是一个非盈利组织提供和维护的数据集。它是一个使用Apache Nutch爬取的全网的数据集,旨在为所有人提供大量的web数据而非被大公司垄断。它几个月发布一次新的结果,包含上百TB的网页数据,目前储存在亚马逊的云服务器上。Common Crawl的数据中包含四

23、种格式的文件,WARC是爬取到的原始网页代码数据,包含了metadata(元数据),request(请求)以及response(响应)的完整内容;WAT对上面的WARC格式文件进一步提取元数据信息,用json格式保存;WET提供纯正文信息8。还有一种易被忽视的信息,就是我们这里要用到的URL Index Files,也就是关于所有页面的URL信息的索引文件。具体的格式如图2.3所示:注:对于每一个网页,都有对应的一条信息,包含了域名爬取时间,url,媒体类型,返回的状态,文件长度等一系列信息。在2017年的12月份版本的Common Crawl中,一共有302个这样的索引文件,大小为200GB

24、左右。图2.3 索引文件格式2.3 Bitextor介绍Bitextor是一个开源的自动从网络上获取双语语料的工具5。它是一系列的模块组成的。包括下载网站上的网页(html/xml),从网页中提取正文,选择候选的平行网页,以及从平行的网页产生对齐的双语语料。 Bitextor的工作流程如下所示12: 使用工具HTTrack,给定urls,下载所有的文本文档,下载的文本保持它们的文件夹结构。 提取每个下载的文件的编码,MIME 类型和内容(进行base64编码后),保存到临时的文件中。提取内容的过程中,用到了jar包boilerpipe,用以去除掉menu等不想要的信息,还用到了tika包,修复

25、html的结构。 对文件中每一行(即一个文件)用python库langid.py判断语言,并根据html5标签信息产生一个字符串,表示结构信息。 利用字典为每个文档选取候选的平行文档。(字典需要自己提供,可以从 有了候选的对齐文档,再次利用之前生成的结构信息字符串,二次评分。 选出了对齐的文档,利用工具hunalign对对齐的文档进行句子层面的对齐,并删除掉部分不对齐的。 导出结果tmx文件。其中每一个流程都对应着Bitextor中的一个模块。具体的使用方法如下所示: bitextor-downloadweb url PATH #这里调用了httrack,也可以直接使用 bitextor-we

26、bdir2ett PATH > ett.txt #将下载的页面经过base64编码全部放到一个文本文件中,便于储存和后续的处理 bitextor-ett2lett ett.txt > lett.txt #判断每一个页面的语言 bitextor-lett2idx -lang1 en -lang2 fr FILE #为单词产生索引 内部格式为>语言|单词|出现在文档的id,依据之前的lettr bitextor-idx2ridx -d en-fr.dic -lang1 en -lang2 fr idx.txt > ridx.txt #根据idx选出每个文档对应最可能的平行文

27、档,依据字典的对应关系,判断可能性 bitextor-distancefilter -l lettr.txt ridx.txt > dis.txt #再次利用之前产生的html5结构信息来加强评估可能性 bitextor-align-documents -I lettr.txt dis.txt > aligndocs.txt#根据distance生成对齐文档 bitextor-align-segments -lang1 en -lang2 fr aligndocs.txt > alignsegs.txt 文档的句子对齐 bitextor-cleantextalign -m 5

28、 q 0.3 alignsegs.txt > cleanedsegs.txt 文档中错误超过m个就放弃文档 -q得分低于-1,1间的某个数q就放弃alignsegs bitextor-buildTMX -lang1 en -lang2 fr cleanedsegs.txt > res.tmx使用Bitextor提供的这些功能,我们可以快速地构建符合自己要求的程序,从而方便得从网络上获取双语平行语料,而无需从头起构建所有的代码。使用Bitextor可以大大减少我们的开发成本。2.4 BLEU值介绍BLEU(bilingual evaluation understudy),即双语评估研

29、究,是由IBM提出的一种评估已经从一种自然语言翻译到另一种自然语言的文本质量的算法。质量一般被认为是机器翻译与人类翻译之间的对应关系:“机器翻译和专业人类翻译相比越接近,那么机器翻译就越好” - 这是BLEU背后的核心思想。BLEU是第一批声称与人类对质量的判断高度相关的指标之一,并且同时仍然是最受欢迎的自动化和廉价指标之一17。BLEU值的计算方法如下面的公式所示:pn=CCandidatengramCCountclip(ngram)C'Candidatengram'C'Count(ngram) BP=1, &c>re1r/c, &crBleu=

30、BPexp(n=1Nwnlogpn)通过比较它们与一组高质量的参考翻译来计算单个翻译片段(通常是句子)的得分,然后对整个语料库对这些分数进行平均,以得出翻译整体质量的估计值。BLEU旨在在语料库级接近人的判断,如果用于评估单个句子的质量,则表现不佳。BLEU的输出始终是介于0和1之间的数字。此值表示候选文本与参考文本的相似程度,其值接近1表示更相似的文本。很少有人工翻译将获得1分,因为这表明候选人与参考翻译之一相同。出于这个原因,没有必要获得1分。因为有更多的机会匹配,增加额外的参考翻译将增加BLEU分数。第三章多语言网站获取技术本章详细阐述了获取多语言网站的难点,现有的多语言网站获取技术及其

31、原理,然后详细得介绍了本文采取得获取技术。最后给出了实验的具体步骤和结果。3.1获取多语言网站的难点双语平行语料的来源是双语言的网站(包含多语言的网站),而双语言的网站来源于互联网,而从互联网中获取多语言网站十分困难,主要原因如下:(1)互联网规模庞大近年来,随着互联网规模成级数增长,全球网络上的网站数量达到了亿级规模,网页数量更是不可计数。规模的增长增加了我们需要的平行语料的数量,但其他类型的网页数量增长更为多。所以,想要从浩如烟海的互联网上精确获取双语网站的资源是一件十分困难的事情,也面对这很多挑战。(2)页面内容繁杂随着前端后端技术的发展,各种交互方式涌现,互联网上的网页很多通过Java

32、Script进行交互,不同语言页面之间的转换可能不是通过超链接,而是通过JavaScript内部进行链接的拼接转换,对于多语言网站的识别造成了很多困难。3.2研究现状分析现有的多语言网站获取技术一般分为有以下三类:某些常用的多语言网站、之前积累的的多语言网站和使用搜索引擎获取多语言网站。(1)某些常用的多语言网站一些类型的网站天生就具有多语言的属性。例如说著名的维基百科(wikipedia)6,百科类型的网站拥有大量已经分好类别的文字数据,并且很多百科词条都拥有多种语言,是天然获取双语平行语料的来源。类似的网站还有新闻类的网站,如BBC等。这类网站虽然质量比较高,平行内容较为集中,但是一般不多

33、,仅有在固定的领域之内。(2)之前积累的的多语言网站7一些已知著名的多语言网站在之前被人收集过,成为稳定的双语平行语料的来源,可以在某些地方找到。这种方法一般不稳定,而且内容也不会太多。(3)使用搜索引擎获取多语言网站著名的STRAND使用搜索引擎AltaVista提供的表达式搜索功能同时寻找两种类型的网站1:(1)一个parent网页包含多个相同内容语言不同的网页,(2)一个网页包含指向平行网页的链接。通过使用这种技术可以方便地得到多语言网站。不过可惜的是,AltaVista搜索引擎已经不再提供服务。另外一种是用搜索引擎的方式是一个名为PaCO2的系统。PaCO2 使用搜索引擎来获取候选待验

34、证的多语言网站2。作为输入,它需要一对语言对和来自两种语言中优选较不频繁的五十个或更多的词行化的词列表。然后它为搜索引擎生成查询。 这些查询是来自所提供单词列表的三元组。查询搜索引擎时,系统使用其API来请求其他语言的结果。 这样,就会创建一个包含候选网站URL的列表。获取后,会对列表中的URL逐个进行排查,筛选出确认是多语言的网站。这种方法往往依赖搜索引擎提供的功能,收到这些API的使用限制。而且搜索引擎返回的结果的准确率不是很高,需要自己继续判断。(4)还有一个有趣的项目Mining Common Crawl是本次工作的灵感来源3。Mining Common Crawl专注于从大规模(超过

35、32TB)的网页数据集中寻找平行的语句,它使用两到三个字符的语言代码集合,从大规模的网页中提取URL包含这样语言代码的网页,将代码替换为“*”,并输出键值对,这样具有相同键的URL形成字典。然后一次性下载所有的符合这种条件的页面,随后使用经典的STRAND系统的方法进行后续的处理。这个方法可以快速过滤不符合要求的网站,比较贴近我们的需求,但是此方法直接对超大数据集进行处理,一次性下载所有的符合条件的网页,需要成集群的计算机集中处理,要求比较高。而且这个方法只能下载URL包含提供的语言代码的页面,可能会忽略很多没有提供的语言代码,或者有些页面虽然包含了语言代码却并不是平行的页面。3.3 从Com

36、mon Crawl中获取多语言网址我们将Common Crawl中的索引信息数据作为URL的来源,然后通过国际标准构建一个包含各种语言标签的字典,最后开始对所有的索引信息进行过滤处理,得到需要的候选的多语言网站的URL。得到候选的URL之后,可以进行进一步的处理。3.3.1 语言标签字典通过对大量的平行网页的观察,可以发现,绝大部分的平行网页的URL中包含语言标签的信息。比如苹果的官方英语网站是所以我们可以选择一些知名的国际化网站,包含苹果,微软之类,从中提取主要语言的标签,加上基本的iso-639标准规定的一些语言代码9,构成了初始的语言代码表(包含38种主要的语言及它们的多种表示,部分内容

37、见下表),用于在分析url时判断是否包含该语言标签。可以理解,也可以通过其他标准,选择一些网站,在此不再赘述。当然,对于一些小语种可能我们无法确定它们的语言标签是什么,但是基于这样的事实:小语种的多语言网站,至少会包含一门主要的语言,比如说英语,因此,在简单的url过滤时,会将它们添加到候选的网址,从而可以在后续的步骤中可以将它们识别出来(需要语言识别模块支持该语言),从而达到完整的效果。各种语言的常见标签如下:英语en 'en':'en','en-us':'en','en-af':'en',

38、9;en-au':'en','en-ca':'en','en-gb':'en','en-ph':法语fr'fr':'fr','fra':'fr','fr-fr':'fr','fr-be':'fr','fr-ca':'fr','fr-ch':'fr','fr-lu':'fr'

39、;越南vi 'vi':'vi','vn':'vi','vn':'vi','vnm':'vn','vie':'vi'汉语zh 'cn':'zh','hk':'zh','mo':'zh','tw':'zh','chn':'zh','zho':'zh'俄

40、语ru 'ru':'ru','ru-ru':'ru','rus':'ru'3.3.2 URL过滤开始对下载到本地的索引文件进行过滤。这里使用了基于MapReduce思想的python框架mrjob来实现这个过程10。mrjob框架可以在本机,Hadoop集群,Amazon Elastic MapReduce(EMR)或者Google Cloud Dataproc(Dataproc)之上运行(前面提到的三者为分布式处理的框架)。由于数据量并不是特别大,本申请可以采用本机运行的方法,而如果是对WET等文

41、件直接操作,推荐直接在亚马逊提供的集群服务上运行,可以省去大量数据传输时间(Common Crawl保存在亚马逊S3云储存服务)。具体的过滤因素包含:对过大过小的文件过滤(可以理解,这是可以选择的),只要text/html类型的文件,response的status状态是2000K,以及最重要的语言标签。对于某个网站域名,统计所有包含上述语言标签的页面数量。统计完成后,如果包含某种语言标签的数量满足要求,就认为这个域名是候选的多语言网站网址。在我们实验中,符合多语言网站的要求是:对于包含两种及以上的网站,加入候选多语言网站;而对于只有一种语言标签的网站,至少需要10个以上包含主流语言标签(比如英

42、语)的页面。可以理解,10个只是一个可能的例子。3.3.3 实验结果下载了200GB左右大小的索引后,我们开始过滤的步骤,经过了大概八个小时的过滤时间后,我们初步得到了468955个候选网站,具体如图3.1所示。每一个候选网站对应一行。每行的前面部分代表候选多语言网站的URL,后面部分代表对应的语言标签出现的数量。图3.1 部分候选多语言网站3.4本章小结由于互联网规模庞大以及页面内容繁杂,多语言网站很难被快速且快速得发现。现有的一些方法或多或少都具有一些局限性。一些常用的多语言网站如BBC双语新闻以及维基百科是稳定的来源,但缺乏普遍性,大量的多语言网站分布在世界的各个角落。使用搜索引擎的方法

43、受到采用的搜索引擎的限制,准确率也十分有限。而Mining Common Crawl项目首次将Common Crawl视作网站的来源,但是其处理方法受到存储空间以及计算机运算能力的限制,而且覆盖的范围并不一定全面。所以本章同样将Common Crawl视作数据来源,但仅仅使用其索引部分,对URL进行过滤处理,得到需要的候选多语言网站,之后再进行后续的处理。第四章双语平行语料提取技术想要获得双语平行语料,仅仅有多语言网站的地址还只是个开始,关键点在于如何通过给定的网站地址,下载对应的页面,并且从中提取出需要的双语平行语料。提取双语平行语料的过程包含很多的关键点,其中比较重要的一点是平行页面的提取

44、。因此,本章首先简单介绍了一些评判网页是否互为平行页面的方法,然后详细描述了实验的具体过程步骤,以及得到的实验结果。最后,对本章进行了一个简单的总结。4.1一些平行页面评判方法114.1.1基于文件基本信息的过滤技术为了比较获取的文件,系统需要对每种语言的每个文件和对应语言的所有文件进行比较。 然而,各种系统一般都应用各种启发式和统计过滤器来减少比较数量。 这些过滤包括语言,文件大小和长度比较。 系统仅比较用户请求的确切两种语言编写的HTML文件。 它还排除文件大小和长度比率超出特定相似性阈值之外的所有文件对。4.1.2基于URL的模式匹配技术URL模式匹配从平行网页通常具有相似的URL的假设

45、中得出。 它们通常在代表语言代码的部分中不同。 例如,以下两个平行文件的URL仅语言代码不同。 l http:/www.mff.cuni.cz/to.cs/verejnost/konalo-se/2016-03-cenaprop/ l http:/www.mff.cuni.cz/to.en/verejnost/konalo-se/2016-03-cenaprop/为了检测这种情况,对于每对文件,PaCo2首先找到并从两个URL中删除语言代码。 然后它计算最长公共子序列比(LCSR)2。 如果该比例达到所需阈值,则系统将候选者视为平行文件。同样在其他的系统中,也有类似的技术。4.1.3基于HTM

46、L结构的技术结合HTML的结构信息可以更好地判断是否是平行网页。HTML格式的文档,即使用超文本标记语言编写的文档具有各种事先约定的标签,文档往往具有结构性,易于我们对文档的结构进行分析。具有类似结构的网页可以获得更高的分数。4.1.4 基于单词对齐的技术对于给定的两种语言我们需要一个关于这两种语言的字典,字典中每一行有一对两种语言的单词对齐。使用该字典对给定的文档进行遍历,计算两种语言文件之间的重叠分数。 对于一种语言的某个文件,它会扫描对应语言的所有文件,找到字典中对应的所有词对,创建另一种语言的十个最高得分候选文档的列表。这种对齐方式依赖于所用字典的质量。4.2实验与分析下面开始通过使用

47、Bitextor工具获取双语平行语料,给出了完整的实验流程,提出了几个需要注意的点并对实验结果进行了分析。4.2.1 整体流程获取双语平行语料的第一步就是下载多语言网站的界面,在Bitextor中使用httrack程序下载网站。httrack是一个免费开源的网站镜像工具13,可以克隆整个网站。可以通过设置参数仅下载需要的html页面,以及设置下载深度,下载时间等很多内容。对于每个下载的网站,在下载后立刻进行预处理(bitextor-webdir2ett),每一个网站对应一个文本文件。这样,下载的大量网页可以删除,减少磁盘的占用。每个网站得到的文本文件接着使用bitextor-ett2lett模

48、块处理,这个模块在判断每个页面语言的同时会从网页中提取正文,然后将这些信息同样储存在一个文本文件中,以便后续的处理。获得一定数量这样的文本文件后,可以对它们的页面语言进行分析。选出需要的一对语言对,找出这些文本文件中包含这两种语言对的文件,然后开始批量进行处理。通过使用bitextor-lett2idx,bitextor-idx2ridx,bitextor-distancefilter,bitextor-align-documents以及bitextor-align-segments和bitextor-cleantextalign这些模块,可以迅速得从文本中提取出双语平行语料。4.2.2 一些

49、注意点(1) 使用httrack下载网站时,因为httrack是克隆整个网站的工具,所以如果不加以设置,默认会一直下载所有的页面及页面资源,包括图片,js文件等。所以需要设置httrack仅下载网页页面,仅在当前域名下下载,限制最大下载时间等等参数。有些参数需要多次实验来确定。(2) 在判断网页平行的过程中会用到双语的字典。作者仅提供了几种常见语言的字典,如果需要提取的双语平行语料的语言不在其中的话需要使用bitextor提供的程序自己生成对应的字典。字典的生成需要一定数量的平行语料。(3) 在使用字典判断网页平行的过程中需要将网页正文中的单词和字典中的词语对应起来,有些语言比如说中文,没有默

50、认的空格来分割单词,所以需要手动处理分词。比如说对于中文分词,就可以使用python库langid.py来实现中文分词14。而对于其他语言,需要寻找对应的分词方法。由于这一部分写死在bitextor的代码中,所以对于需要的语言,需要修改bitextor中的代码。4.2.3 实验结果与分析下面是每一步的部分结果。下载页面以及预处理的过程中开启多个进程,同时进行处理,如图4.1所示。图4.1 爬取进程每个下载完成的网站对应一个文本文件,根据下载量的大小文件大小也不同,如图4.2所示。本文以暂时爬取的1650个网站为例。在这1650个网站中,有大概1/3的网站的文本文件大小小于100KB,余下大部分

51、在1MB到十几MB之间,偶尔有几个达到上百兆甚至达到一个GB的网站。图4.2 1650个爬取文件在语言识别及正文提取完成后,开始对每个文本文件对应的所有页面进行语言统计。统计的结果如表4.1所示。将统计的结果和第三章得到的结果对比一下,就可以发现还是有一些不同的。比如说网站,第三章中得到的结果是"fr": 51, "de": 53, "en": 69,而在这个过程中得到的是"de": 237, "fr": 163, "en": 149, "ht": 2,

52、"la": 1, "oc": 1, "lb": 4,在排除掉某些出现次数较少,可能是判断错误的语言(比如说ht,la,oc,lb)后,相较于之前的结果,页面的数量都增加了很多。这说明相较于直接使用Common Crawl的网页数据,使用bitextor爬取数据往往能抓取更多的页面。表 4.1 语言统计部分结果lett_wkpsschoolcom.txt"th": 793, "en": 188lett_xoteliercom.txt"es": 6, "en"

53、: 35, "la": 7, "lv": 1, "tr": 5, "ru": 20lett_wregcom.txt"he": 7, "fr": 1, "es": 1, "en": 1031, "la": 366lett_2016wishoutdoorcom.txt"en": 39, "nl": 6lett_witjpncom.txt"qu": 1, &quo

54、t;zh": 16, "en": 17, "ja": 20, "la": 1lett_wm-storecom.txt"uk": 17, "en": 16, "ru": 29, "la": 1lett_yachtsreviewcom.txt"en": 291, "ru": 1163, "uk": 43lett_yacumamahotelcom.txt"es": 52,

55、"en": 52, "gl": 1在得到关于语言的列表信息后,开始进行下一步的双语语料提取。我们的实验以en-de语料为例,从所有的网站中选择包含en标签和de标签的网站。然后对每个网站进行一系列的处理,包括平行页面提取和平行句对提取。将每个网站对应的文本文件生成的平行句对汇集到同一个文件中。这个文件包含了142752个句对。在对齐的过程中,对齐工具hunalign会给每对平行句对根据对齐的结构打一个分。所以可以使用bitextor-cleantextalign进行初步的过滤。我们将低于0.5分的句对排除掉,而如果一对网页中超过10句句对被排除,就将这个

56、网页对排除。我们将经过过滤处理的平行句对和没有经过过滤处理的句对分别处理,进行对比的实验。一组实验是未经过过滤的(后续称为实验组一),包含142752个平行句对,另一组实验则是经过初步的过滤(称为实验组二),剩下55963个句对。可以看到,这一步过滤的句对很多,对最后的实验结果有很大的影响。所以我们在后续的实验中会分析两组实验的最后结果,包括它们的数量,准确性等。然后对这一步中是否需要过滤,以及过滤的相关参数进行取舍。然后对长度过长以及重复的句对进行过滤处理,实验组一还剩下109070个句对,实验组二还剩下40358个句对。提取出来,结果分别如图4.3及图4.4所示。实验组一完全没有经过过滤处

57、理,而实验组二虽然经过了初步的过滤,但这种过滤没有考虑到句子的具体含义,而仅仅考虑句子在文章中的位置结构,所以直觉上这些句对中还有很多不符合要求的句对存在。经过人工的查看,确实存在不少含义完全不同的错误“平行句对”。图4.3 实验组二提取出的部分de-en句对图4.4 实验组一提取出的部分de-en句子4.3本章小结本章首先大概介绍了一些平行页面的评判方法,包括了基于文件的基本信息,基于URL的模式匹配,基于HTML结构以及基于单词对齐的技术。随后详细介绍了开源的双语语料提取工具Bitextor,并对它的工作流程以及每一个模块的作用进行了详细的说明。之后,我们开始了实验的流程。通过一步步的实验

58、,我们最终得到了实验组一的109070个双语平行句对以及实验组二的40358个句对。然后,经过我们的分析,发现其中有许多不符合要求的句对,含义完全不同。所以,在下一章中,我们会提出一种快速评判平行句对质量并进行过滤的方法。第五章双语平行语料质量分析与过滤在上一章中我们初步得到了一些双语平行语料。可是,在经过人工的分析比较之后,我们发现其中有一些句对不符合我们的要求,它们在含以上完全不同。经过分析,我们认为可能是在判断某些内容较少的平行页面的时候,由于网页使用了类似的框架,使得判断平行页面的时候判断错误,进而造成后续提取平行句对的时候提取错误。而由于页面内容较少,所以在使用初步过滤模块的时候未将这些句子过滤除去。在这一章中,我们会提出对双语平行语料进行质量分析以及过滤的方法,解决具体实验中遇到的问题,并对过滤的结果进行分析。5.1现有的一些双语平行语料过滤技术网络上用于双语平行语料的资料比较少,有一些github上面的项目用作过滤双语平行语料。下面简单得介绍了几个github上面得平行语料过滤工具。l C-Eval 平行语料清理评估工具15C-Eval提出了一种使用词对齐和机器学习算法来清理和评估平行语料库的方法。 它是基于这样的假设:双语平行句对有许多单词对齐,而非平行句对却很少或者说没有。 那么就可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论