推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

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

更新时间:2019-12-23 13:12:39 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

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


部分文件列表

文件名 大小
基于Python的网络语料获取和文本提取方法探索.pdf 1M

部分页面预览

(完整内容请下载后查看)
DOI:10.16541/j.cnki.2095-8420.2019.14.063  
基于 Python 的网络语料获取和文本提取方法探索  
赵振国  
(上海杉达学院 上海)  
语料库语言学一定程度上着计算机科学的发展而发展Python 语言因其语法简单近自然语言、  
拥有数以万计的第三方类库,近些年发展迅速,同时深受各领域学者喜爱。Python 语言的第三方类库 Requests 通过  
几行代码就可获取网页文本信息时第三方库 Beautiful Soup 也仅需数行代码就可从海量文本信息中提取指定信息。  
使用 Python 构建语料库,可以明显提高语料库建库效率。本文结合实例,详述基于 Python 的快速获取语料和文本  
提取过程。  
关键词:语料库;建库;Python 语言;Requests;Beautiful Soup  
本文引用格式:振国 . 基于 Python 的网络语料获取和文本提取方法探索 [J]. 教育现代化,2019,6(14:  
188-190  
语料库研究包括三个主要阶段:建库、数据统  
计和分析。建库的任务主要包括文本的收集、整理  
和标注 [1 p21-23]建库是语料库研究的基石,建库的  
速度也决定了语料库研究的进度。  
库有语料资源共享性、语料内容历时性和语料检索  
多功能性诸多优点,但是也有一些缺点,其中最重  
要的一点是检索需要依赖搜索引擎,同时还要进行  
[3]  
文本处理,最后再返回文本造成的检索速度过慢  
CQPweb 用预先索引好的语料库供用户查询,提  
高了响应速度,但用户无法获得语料库文本,个性  
化的研究需求无法实现 [4]。李文中教授认为,语料  
库开发正在向两头发展:一头是满足使用者多元需  
语料库研究随计算机技术的进步而不断发展。英  
语语料库始于 20 60 代夸克主持的现代英语  
语料库,但当时计算机技术还不太成熟,该语料库建  
设通过手工完成。同时期,通过计算机完成建库的  
BROWN(美国英语语料库)建成,但总容量很小, 求的、通用的、基于网络的超大型语料库,另一头  
只有 100 万英语词。70 年代后,大量的语料库建立, 是满足田野使用的个性化、专业化的小型语料库开  
LOB英语英语语料库COBUILD柯林斯英  
语语料库BNC(英语国家语料库)等,其中 BNC  
容量达到上亿英语词 [2 p4-5]。国内从杨惠中教授主持建  
立的 JDEST(科技英语计算机语料库)开始,也掀起  
[5]。大型语料库无法满足使用者多元需求,而个  
性化的小型语料库又以计算机技术做支撑,让一些  
没有编程基础的语言学研究者望而却步。  
Python 语言语法简单、非常接近自然语言、拥  
了语料库建设热潮,如 CLEC(中国学习者语料库涵盖网站开发运维、数据处理等多领域的十多万  
COLSEC(中国学习者英语口语语料库PACCEL(中  
国大学生英汉汉英口笔译语料库)等 [1 p5]  
的第三方类库 [6],从而极大简化了开发的难度,非  
常适合文科生学习开发。  
随着语料库的规模越来越容量不再是制  
约发展的问题。但是这些语料库的语料大多来自书  
试卷等纸质文本扫然后通过软件识别而  
来, 效 率 较 低, 人 工 耗 费 巨 大。 随 着 互 联 网 的 发  
展,网络上海量的文本,为语料库建设提供了大量  
的文本资基于互联网的语料库应运而其  
中 以 WEBcorpA.Renouf) 和 CQPweb( 许 家 金  
等)为著名。虽然和传统的语料库相比,Web 语料  
Python 在语料库研究中的应用主要集中在基于  
NLTKNatural Language Tool Kit处理包对英语  
文本进行分词、文本清洁、词性赋码、检索等方面 [7]  
[8],但基于 Python 的网页数据获取技术已经非常成  
熟,甚至有学者还详细演示了面向人文社科类专业  
Python 教学案例 [6]。因此,本文尝试使用 Python  
一次获取某在线词典 1300 单词网页信息,提取  
网页中单词的英式和美式音标为例,详细介绍基于  
基金项目: 本文是上海杉达学院 2017 年度后续研究项目(2017hx04)的研究成果。  
作者简介: 赵振国,男,汉族,上海杉达学院,硕士研究生,研究方向:语料库语言学与外语教学。  
投稿邮箱:  
188  
Python 的快速获取和提取语料的过程。  
lines = f.readlines()  
for line in lines:  
Requests+ Beautiful Soup 可以直接获取和保存  
网页的指定信息,效率最高,但是鉴于一则处理速  
度较慢,可能会引发网络异常,二则如果还需要获  
取其他内容,就需要从新获取网页,存在如因网页  
地址发生变更造成无法找到网页的诸多问题,因此  
把两步分开进行,速度较慢但受网络的影响最少,  
是最为稳妥的方法:先使用 Requests 获取全部的网  
页信息,存为本地文件,然后使用 Beautiful Soup 提  
取指定信息。  
word = (line.strip())  
u r l = h t t p : / / d i c t . y o u d a o . c o m /  
w/+word+/#keyfrom=dict2.top”  
path =d:\\WordBank\\+word+.txt”  
try:  
if not os.path.exists(path):  
r = requests.get(url, timeout =30).text  
rcode = r.encode(utf-8)  
with open(path,wb+) as f:  
f.write(rcode)  
一 网页文本获取方法  
基于 Python 页获取主要包括阅读 Robots 协  
议,分析网页规则,利用 Requests 获取并保存网页  
文本内容,使用 for 循环获取和保存多个网页文本信  
息,直至结束。具体步骤如下:  
f.close()  
print(“文件保存成功”)  
else:  
print(“文件已存在”)  
except:  
print(failed)  
(一)  Robots 协议  
Robots 协议是网站对爬虫的约定文本,规定了  
禁止爬取的网页信息。在爬取任何网站大量的网页  
信息时,必须要遵守 Robots 协议。  
二 文本信息提取  
基于 Python 文本提取主要包括文本的 html  
格式分析、确定提取文本在 html 部的准确位置、  
使用 for 循环获取和保存提取信息文本,直至结束。  
html 格式分析  
(二) 析网页规则  
某 在 线 字 典 首 页 网 址 为 http://dict.youdao.  
com/?keyfrom=dict2.index, 当 分 别 输 入 check 和  
moon, 网 页 地 址 分 别 为 http://dict.youdao.com/w/  
check/#keyfrom=dict2.top http://dict.youdao.com/  
w/moon/#keyfrom=dict2.top通过观察可以发现网  
址差别,因此,在构造 URL 时,只需要把检索单词  
放在 /w/ /#keyfrom 间即可。对照 Robots 议  
http://youdao.com/robots.txt爬取规则符合要求,  
可以爬取。  
html 成对尖括号出现,主要包括四块内容:  
标签(成对尖括号标签名字、标签属性和标签  
内字符串构成。同时标签之间可以相互内嵌。如图  
1 示,<span></span> 标签,span 标签名字,  
class=keyword”是标签属性,abolish 为标签内字  
符串。同时标签内部还可以多层嵌套标签,标签 div  
里面内嵌了 2 span 标签,而第一个 span 标签还内  
嵌了一个 span 标签,而该 span 又内嵌了 a 标签。  
(三) 使 Requests 获取保存网页文本  
使 用 Python 第 三 方 库 requests get(URL) 方  
法获取网页信息。  
确定提取文本在 html 内部的准确位置  
通过分析图 1 代码,单词音标就是图 1 中,  
属性为 class=pronouncespan标签内字符串内容。  
for 循环获取和保存  
使用 with open(文件名方式 ) as 量名,  
对获取的网页文本信息存储到本地 txt 文件,文件名  
定为检索关键词 +.txt这样不仅可以清楚明白文  
件存储内容,而且也方便程序查重。  
(四) for 循环  
程序代码如下:  
把需要获取文本信息的单词按照一行一存储,  
使用 with open(文件名方式 ) as 量名和 for  
in 循环方法,重复步骤 3。  
import os  
from bs4 import BeautifulSoup  
dirList ="d:\\WordBank\\download\\"  
filenames = os.listdir(dirList)  
for filename in filenames:  
f = o p e n ( d i r L i s t + f i l e n a m e , ' r ' ,  
encoding='UTF-8')  
程序代码如下:  
import requests  
import os  
with open(d:\\WordBank\\WordList.txt) as f:  
soup = BeautifulSoup(f,'html.parser')  
·2019214
189  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载