自然语言处理之中文语料收集
自然语言处理语料的来源
众所周知,中文的语料非常稀少,因为中文不像英语那样只有26个字母组成一切,中文的汉字数不清楚,所以对于预料的整理就非常的繁琐和复杂。抛开现有的一些质量不好的中文语料不谈,我们可以想到一些已经整理的差不多的语料,只需要我们稍加处理就可以得到一个完美的语料。这个时候我就想到了字幕文件这个尚未被发现的巨大语料库,因为字幕的容易获取,而且处理起来比较简单,所以我选择了爬取字幕网站这一方式。
首先,选择一个字幕网站https://www.zimuku.la/我选择的是这个网站,大家也可以选择其他字幕网站。首先我们要先查看这个网站的网页结构,观察他的代码结构,发现我们想要的东西。下面来看一下网站首页:
我们观察后发现网站首页就有字幕的链接存在,我们再观察网页底部:
我们看到网页底部有页码,总共1500条字幕信息,一共50页。经过测试后发现,每一页的链接就是数字的变换,如:
http://www.zimuku.la/newsubs?&p=1这是第一页,http://www.zimuku.la/newsubs?&p=2这是第二页。
所以这就确定了我们的爬取链接。
接下来我们就可以查看第一页的网页源代码了:
划红线部分的detail后面的部分就是我们要找的每一条字幕的链接,只要在它的前面加上http://www.zimuku.la/即可对其进行访问。
接下去,我们对其访问到的网页进行分析:
可以看到绿色的按钮下载字幕是我们要找的,我们要将他的链接找到,同样查看其网页源代码:
在源代码中我们找到了这个下载链接,所有的链接我们都已经找到,接下来我们要做的就是具体的代码实现了。我们要用到的东西会有正则表达式,selenium,request等python库。
对于正则表达式就是根据网页源代码进行编写,我们可以用https://alf.nu/RegexGolf#accesstoken=xDpssJbZsLtvWCZGOppl这个正则表达式网站进行检测它的正确与否,可以提高我们的效率,
selenium模块的运用,主要是用浏览器测试工具操纵鼠标点击下载按钮,对字幕进行下载。因为要提高我们的效率,所以我们在一定的时间关闭浏览器测试工具。如果该字幕还未下载完成只能对其进行手动删除处理,这一点和网速有关。我也在想办法优化。
request库的使用相信大家都已经了解,不了解的可以期待我明天给大家写的一篇博客,简单的爬虫实现。
下面是源代码展示:
import re
import time
from selenium import webdriver
import requestsfor l in range(1, 50):try:url = "http://www.zimuku.la/newsubs?&p=" + str(l + 1)r = requests.get(url)data = r.textpat = 'href="(.*?)" target="_blank" title'rst = re.compile(pat).findall(data)for i in range(len(rst)):rst[i] = "http://www.zimuku.la/" + rst[i]# print(rst)dw_url = []for j in range(len(rst)):r2 = requests.get(rst[j])data2 = r2.textpat2 = 'down1" href="(.*?)" target="_blank" rel'rst2 = re.compile(pat2).findall(data2)dw_url.append(rst2[0])# print(rst2)# print(dw_url)for k in range(len(dw_url)):driver = webdriver.Chrome()driver.get(dw_url[k])driver.implicitly_wait(8)driver.find_element_by_xpath("/html/body/main/div/div/div/table/tbody/tr/td[1]/div/ul/li[1]/a").click()time.sleep(20)driver.close()except:print("爬取出错!")
自然语言处理之中文语料收集相关推荐
- 【自然语言处理NLP】中文语料整理【情感分析、文本分类、摘要、实体分析】
中文NLP语料整理 新闻文本分类语料 情感分析语料 实体分析语料 垃圾分类语料 个人开发在做很多NLP相关任务的时候,语料的寻找十分头疼. 有很多公开的语料,被他人收费,或要积分下载等等. 对平时开发 ...
- 自然语言处理与中文分词的难点总结--学习笔记
自然语言处理与中文分词的难点总结 2012年7月2日 10:01 中文自动分词 指的是使用计算机自动对中文文本进行词语的切分,即像英文那样使得中文句子中的词之间有空格以标识.中文自动分词被认为是中文自 ...
- 【python gensim使用】word2vec词向量处理中文语料
word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间 ...
- Word2Vec中文语料实战
目录(?)[-] Word2Vec中文语料实战 Word2Vec中文语料实战 虽然Word2Vec在NLP领域很火,但网上关于Word2Vec中文语料训练的入门级资料 ...
- [深度学习] 自然语言处理 --- Huggingface-Pytorch中文语言Bert模型预训练
Hugging face 是一家总部位于纽约的聊天机器人初创服务商,开发的应用在青少年中颇受欢迎,相比于其他公司,Hugging Face更加注重产品带来的情感以及环境因素.官网链接在此 https: ...
- word2vec python 代码实现_python gensim使用word2vec词向量处理中文语料的方法
word2vec介绍 word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出 ...
- windows10 训练word2vec 中文语料
windows10 环境 训练word2vec 中文语料 参考这篇文章,但有自己体会 概述 本人是NLP中的菜鸟,喜欢这个领域,自己论文打算做这方面,训练word2vec是每一项NLP工作的基础内容. ...
- 深度学习与自然语言处理实验——中文信息熵的计算
深度学习与自然语言处理实验--中文信息熵的计算 问题描述 实验原理 信息熵 语言模型的参数估计 实验过程 实验数据的预处理 一元模型 二元模型 三元模型 实验结果 语料信息统计 不同模型下的实验结果 ...
- 基于深度学习的Wiki中文语料词word2vec向量模型
资源下载地址:https://download.csdn.net/download/sheziqiong/85820613 资源下载地址:https://download.csdn.net/downl ...
最新文章
- ActiveMQ消息中间件简明笔记(1)——理论知识点整理
- java字符串 大括号_string.format格式化字符串中转义大括号“{}”
- ylb:表的结构的修改和基本约束
- 中小企业CRM评测-用户交互_易客
- linux之ftp怎么把本地文件拷贝到服务端
- 全世界关于数学家和科学家的电影
- Google的wiki-map也上线了
- html给table加外边框,如何给table添加边框
- android查看数据库
- linux下查看so文件内容,linux查看so文件的一些信息命令
- xcode 打包ipa
- Reason: Canonical names should be kebab-case (‘-‘ separated), lowercase alpha-numeric characters and
- 编译caffe2遇到的坑
- 51单片机入门——单片机最小系统
- RedHat 自定义Jenkins Slaver Service,并开机自启动
- mybatis where 标签使用
- css3-属性选择器 伪类:root :not() :first-of-type :first-child 伪元素 ::first-letter ::first-line ::selection等等
- Oracle数据库中神奇的dual表
- 「京东白条」的数据架构进化之路
- Maven Resources Compiler: Failed to copy ‘XXX‘ to ‘target/xxx‘编译报错