二十八、脑洞大开:基于美剧字幕的聊天语料库建设方案
2017-01-25 13:56
337 查看
要让聊天机器人进行学习,需要海量的聊天语料库,但是网上的语料库基本上都是有各种标注的文章,并没有可用的对话语料,虽然有一些社区的帖子数据,但是既要花大把银子还不知道质量如何。笔者突然灵机一动,找到一个妙招能获取海量高质聊天语料,这下聊天机器人再也不愁语料数据了。
请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址
美剧字幕
是的,你没有看错,我就是这样获取海量高质聊天语料的。外文电影或电视剧的字幕文件是一个天然的聊天语料,尤其是对话比较多的美剧最佳。为了能下载大量美剧字幕,我打算抓取字幕库网站www.zimuku.net,当然你也可以选择其他网站抓取。自动抓取字幕
有关爬虫相关内容请见我的另一篇文章《教你成为全栈工程师(Full Stack Developer) 三十-十分钟掌握最强大的python爬虫》。在这里我直接贴上我的抓取器重要代码(代码共享在了https://github.com/warmheartli/ChatBotCourse):# coding:utf-8 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) import scrapy from w3lib.html import remove_tags from subtitle_crawler.items import SubtitleCrawlerItem class SubTitleSpider(scrapy.Spider): name = "subtitle" allowed_domains = ["zimuku.net"] start_urls = [ "http://www.zimuku.net/search?q=&t=onlyst&ad=1&p=20", "http://www.zimuku.net/search?q=&t=onlyst&ad=1&p=21", "http://www.zimuku.net/search?q=&t=onlyst&ad=1&p=22", ] def parse(self, response): hrefs = response.selector.xpath('//div[contains(@class, "persub")]/h1/a/@href').extract() for href in hrefs: url = response.urljoin(href) request = scrapy.Request(url, callback=self.parse_detail) yield request def parse_detail(self, response): url = response.selector.xpath('//li[contains(@class, "dlsub")]/div/a/@href').extract()[0] print "processing: ", url request = scrapy.Request(url, callback=self.parse_file) yield request def parse_file(self, response): body = response.body item = SubtitleCrawlerItem() item['url'] = response.url item['body'] = body return item
下面是pipeline.py代码:
class SubtitleCrawlerPipeline(object): def process_item(self, item, spider): url = item['url'] file_name = url.replace('/','_').replace(':','_') fp = open('result/'+file_name, 'w') fp.write(item['body']) fp.close() return item
看下我抓取的最终效果
[root@centos:~/Developer/ChatBotCourse/subtitle $] ls result/|head -1 http___shooter.zimuku.net_download_265300_Hick.2011.720p.BluRay.x264.YIFY.rar [root@centos:~/Developer/ChatBotCourse/subtitle $] ls result/|wc -l 82575 [root@centos:~/Developer/ChatBotCourse/subtitle $] du -hs result/ 16G result/
请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址
字幕文件的解压方法
linux下怎么解压zip文件
直接执行unzip file.zip即可linux下怎么解压rar文件
http://www.rarlab.com/download.htmwget http://www.rarlab.com/rar/rarlinux-x64-5.4.0.tar.gz
tar zxvf rarlinux-x64-5.4.0.tar.gz
./rar/unrar试试
解压命令:
unrar x file.rar
linux下怎么解压7z文件
http://downloads.sourceforge.net/project/p7zip下载源文件,解压后执行make编译后bin/7za可用,用法bin/7za x file.7z
最终字幕的处理方式
有关解压出来的文本字幕文件的处理,我后面的文章会详细讲解如何分词、如何组合,敬请期待。相关文章推荐
- 基于用户体验的服务型政府网站群建设优化方案
- 基于文本内容理解的中医药数据基础研究——中医药文献语料库的建设
- 基于JCFXBL与GSM短信猫的短信中心建设方案
- 基于文本内容理解的中医药数据基础研究——中医药文献语料库的建设
- 基于文本内容理解的中医药数据基础研究——中医药文献语料库的建设
- 基于WebRtc在H5视频聊天、视频教学、视频会议、视频直播、白板互动低延时方案
- 基于Oracle的大数据导入方案探索
- 基于spring数据抓取和数据回放实现方案
- 基于UDP协议的局域网网络聊天工具
- 基于Windows Server 2003的活动目录集成方案
- 【引用】基于ARM的局域网聊天、会议终端通讯设备
- 【StatsD监控】基于Telegraf+InfluxDB+grafana展示(非Docker方案)
- 基于 Qt的聊天工具
- 撸代码--类QQ聊天实现(基于linux 管道 信号 共享内存)
- 基于云信的react-native聊天系统
- 基于电子商务的CRM评价体系建设研究
- Android 高仿微信实时聊天 基于百度云推送
- 简单的基于IIS7的web server NLB方案
- 基于Java技术的大型网站架构方案