Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 教育论文 > 正文

基于 Python 的网络语料获取和文本提取方法探索论文

发布时间:2019-12-04 16:04:33 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com):

摘要:语料库语言学,在一定程度上,随着计算机科学的发展而发展。Python语言因其语法简单、接近自然语言、拥有数以万计的第三方类库,近些年发展迅速,同时深受各领域学者喜爱。Python语言的第三方类库Requests通过几行代码就可获取网页文本信息,同时第三方库Beautiful Soup也仅需数行代码就可从海量文本信息中提取指定信息。使用Python构建语料库,可以明显提高语料库建库效率。本文结合实例,详述基于Python的快速获取语料和文本提取过程。

关键词:语料库;建库;Python语言;Requests;Beautiful Soup

本文引用格式:赵振国.基于Python的网络语料获取和文本提取方法探索[J].教育现代化,2019,6(14):188-190

        语料库研究包括三个主要阶段:建库、数据统计和分析。建库的任务主要包括文本的收集、整理和标注[1 p21-23]。建库是语料库研究的基石,建库的速度也决定了语料库研究的进度。

         语料库研究随计算机技术的进步而不断发展。英语语料库始于20世纪60年代夸克主持的现代英语语料库,但当时计算机技术还不太成熟,该语料库建设通过手工完成。同时期,通过计算机完成建库的BROWN(美国英语语料库)建成,但总容量很小,只有100万英语词。70年代后,大量的语料库建立,如LOB(英语英语语料库),COBUILD(柯林斯英语语料库),BNC(英语国家语料库)等,其中BNC容量达到上亿英语词[2 p4-5]。国内从杨惠中教授主持建立的JDEST(科技英语计算机语料库)开始,也掀起了语料库建设热潮,如CLEC(中国学习者语料库)、COLSEC(中国学习者英语口语语料库)、PACCEL(中国大学生英汉汉英口笔译语料库)等[1 p5]。

       随着语料库的规模越来越大,容量不再是制约发展的问题。但是这些语料库的语料大多来自书本、试卷等纸质文本扫描,然后通过软件识别而来,效率较低,人工耗费巨大。随着互联网的发展,网络上海量的文本,为语料库建设提供了大量的文本资源。基于互联网的语料库应运而生,其中以WEBcorp(A.Renouf)和CQPweb(许家金等)为著名。虽然和传统的语料库相比,Web语料库有语料资源共享性、语料内容历时性和语料检索多功能性诸多优点,但是也有一些缺点,其中最重要的一点是检索需要依赖搜索引擎,同时还要进行文本处理,最后再返回文本造成的检索速度过慢[3]。CQPweb利用预先索引好的语料库供用户查询,提高了响应速度,但用户无法获得语料库文本,个性化的研究需求无法实现[4]。李文中教授认为,语料库开发正在向两头发展:一头是满足使用者多元需求的、通用的、基于网络的超大型语料库,另一头是满足田野使用的个性化、专业化的小型语料库开发[5]。大型语料库无法满足使用者多元需求,而个性化的小型语料库又以计算机技术做支撑,让一些没有编程基础的语言学研究者望而却步。

\

 
        Python语言语法简单、非常接近自然语言、拥有涵盖网站开发运维、数据处理等多领域的十多万的第三方类库[6],从而极大简化了开发的难度,非常适合文科生学习开发。

        Python在语料库研究中的应用主要集中在基于NLTK(Natural Language Tool Kit)处理包对英语文本进行分词、文本清洁、词性赋码、检索等方面[7][8],但基于Python的网页数据获取技术已经非常成熟,甚至有学者还详细演示了面向人文社科类专业的Python教学案例[6]。因此,本文尝试使用Python一次获取某在线词典1300多单词网页信息,提取网页中单词的英式和美式音标为例,详细介绍基于Python 的快速获取和提取语料的过程。

        Requests+ Beautiful Soup 可以直接获取和保存网页的指定信息,效率最高,但是鉴于一则处理速度较慢,可能会引发网络异常,二则如果还需要获取其他内容,就需要从新获取网页,存在如因网页地址发生变更造成无法找到网页的诸多问题,因此把两步分开进行,速度较慢但受网络的影响最少, 是最为稳妥的方法:先使用 Requests 获取全部的网页信息,存为本地文件,然后使用 Beautiful Soup 提取指定信息。

一 网页文本获取方法

        基于 Python 网页获取主要包括阅读 Robots 协议,分析网页规则,利用 Requests 获取并保存网页文本内容,使用 for 循环获取和保存多个网页文本信息,直至结束。具体步骤如下:

(一) 阅读 Robots 协议

        Robots 协议是网站对爬虫的约定文本,规定了禁止爬取的网页信息。在爬取任何网站大量的网页信息时,必须要遵守 Robots 协议。

(二) 分析网页规则

\
 
(三) 使用 Requests 获取保存网页文本

        使用 Python 第三方库 requests 的 get(URL) 方法获取网页信息。使用 with  open(‘文件名’,方式 )  as  变量名,对获取的网页文本信息存储到本地 txt 文件,文件名定为检索关键词 +”.txt”,这样不仅可以清楚明白文件存储内容,而且也方便程序查重。

(四) for 循环

       把需要获取文本信息的单词按照一行一存储, 使用 with  open(‘文件名’,方式 )  as  变量名和 for… in 循环方法,重复步骤 3。

\
\

二 文本信息提取

       基于 Python 的文本提取主要包括文本的 html 格式分析、确定提取文本在 html 内部的准确位置、使用 for 循环获取和保存提取信息文本,直至结束。

      html 格式分析html 以成对尖括号出现, 主要包括四块内容: 标签(成对尖括号)、标签名字、标签属性和标签内字符串构成。同时标签之间可以相互内嵌。如图 1 所示,<span></span> 是标签,span 是标签名字class=”keyword”是标签属性,abolish 为标签内字符串。同时标签内部还可以多层嵌套标签,标签 div 里面内嵌了 2 个 span 标签,而第一个 span 标签还内嵌了一个 span 标签,而该 span 又内嵌了 a 标签。

       确定提取文本在 html 内部的准确位置通过分析图 1 的代码, 单词音标就是图 1 中, 属性为class=’pronounce’的span标签内字符串内容。for 循环获取和保存
 
程序代码如下:

\
\

 
\
 

三 结语
 
        本文借助 Python 语言的第三方类库 Requests,只用简单 20 几行代码,用时 5 分钟,就可以获取到106MB 的 1300 多个网页文本信息,同时使用第三方类库Beatiful Soup,也只需 30 行代码,用时 3 分钟,就将单词的音标信息,从 1300 多个网页文本中提取并保存在 text 文本中。该例显示了 Python 语言的强大,为语料库建库提供了参考。

       但是,该方法仅限于爬取网页规则较为简单的网页,而对于较为复杂的网页规则无能为力,也是日后需要研究的方向。

参考文献:

[1]梁茂成,李文中 & 许家金 . 语料库应用教程 [M]. 北京:外语教学与研究出版社,2010.
[2]杨惠中.语料库语言学导论 [M].上海:上海外语教育出版社, 2002.
[3]邢富坤 .Web 语料库及其特征初探 -- 与传统语料库的对比研究[J]. 外语电化教学 ,2006,(2):62-66.
[4]许家金 , 吴良平 . 基于网络的第四代语料库分析工具 CQPweb及应用实例 [J]. 外语电化教学 ,2014,(5).
[5]桂诗春, 冯志伟, 杨惠中, 等. 语料库语言学与中国外语教学[J].现代外语 ,2010,(4):419-426.
[6]刘文飞 , 赵铭伟 . 面向人文社科类专业的 Python 教学案例实践 [J]. 计算机教育 ,2017,(12):15-19.
[7]韦永智 , 刘旭 .Python 中用正则表达式为英文文本分词的方法探究 [J]. 科学导报 ,2015,(24).
[8]刘旭 . 基于 Python 自然语言处理工具包在语料库研究中的运用 [J]. 昆明冶金高等专科学校学报 ,2015,31(05):65-69.
[9]王立翔 . 基于计算思维的 python 语言课程教学改革刍议 [J].教育现代化 ,2017,4(15):12-13.

关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jiaoyulunwen/8354.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml