首页>> 正文

自己动手做聊天机器人 二十八-脑洞大开:基于美剧字幕的聊天语料库建设方案 大数据

来源:商群邮件营销时间:2016-10-20 02:10:43点击:1732

本文转载自: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代码:

<code class="language-python hljs "><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">SubtitleCrawlerPipeline</span><span class="hljs-params">(object)</span>:</span>
    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">process_item</span><span class="hljs-params">(self, item, spider)</span>:</span>
        url = item[<span class="hljs-string">'url'</span>]
        file_name = url.replace(<span class="hljs-string">'/'</span>,<span class="hljs-string">'_'</span>).replace(<span class="hljs-string">':'</span>,<span class="hljs-string">'_'</span>)
        fp = open(<span class="hljs-string">'result/'</span>+file_name, <span class="hljs-string">'w'</span>)
        fp.write(item[<span class="hljs-string">'body'</span>])
        fp.close()
        <span class="hljs-keyword">return</span> item</code>

看下我抓取的最终效果

<code class=" hljs ruby">[root<span class="hljs-variable">@centos</span><span class="hljs-symbol">:~/Developer/ChatBotCourse/subtitle</span> <span class="hljs-variable">$]</span> ls result/|head -<span class="hljs-number">1</span>
http___shooter.zimuku.net_download_265300_Hick.<span class="hljs-number">2011.720</span>p.<span class="hljs-constant">BluRay</span>.x264.<span class="hljs-constant">YIFY</span>.rar
[root<span class="hljs-variable">@centos</span><span class="hljs-symbol">:~/Developer/ChatBotCourse/subtitle</span> <span class="hljs-variable">$]</span> ls result/|wc -l
<span class="hljs-number">82575</span>
[root<span class="hljs-variable">@centos</span><span class="hljs-symbol">:~/Developer/ChatBotCourse/subtitle</span> <span class="hljs-variable">$]</span> du -hs result/
<span class="hljs-number">16</span>G   	result/</code>

字幕文件的解压方法

linux下怎么解压zip文件

直接执行unzip file.zip即可

linux下怎么解压rar文件

http://www.rarlab.com/download.htm

wget 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

最终字幕的处理方式

有关解压出来的文本字幕文件的处理,我后面的文章会详细讲解如何分词、如何组合,敬请期待。

微信扫一扫,关注我爱机器学习公众号

微博:我爱机器学习

欢迎大家继续关注慧邮件邮件营销平台,也可以在我们的慧邮件官网了解更多邮件营销技巧,大数据知识,也可以通过电话:400-666-5494联系到我们,更多精彩知识、活动等着你。

相关阅读

  • *真实姓名:
  • *手机号码:
  • 公司名称:
  • 咨询内容:

CopyRight © 2009 - 2020 All Right Reserved 备案号:闽ICP备15004550号-275

厦门书生企友通科技有限公司 QYT.com 版权所有