【ChatBot开发笔记】聊天机器人——语料资源获取与词性分类

本文介绍了如何使用Python爬虫框架Scrapy进行网页抓取,并详细讲解了Scrapy的安装、配置和基本使用。接着,文章转向中文分词,探讨了pynlpir库的安装与应用,包括关键词提取和自定义词典的使用,以及词性分类表的介绍。
摘要由CSDN通过智能技术生成

python爬虫框架scrapy

1、简介scrapy

快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化数据。

2、scrapy安装

打开cmd,输入

pip install scrapy

下载完成后,出现Successfully install scrapy字样即安装成功。
过程中或许会出现安装问题,仔细阅读提示信息,可能是由于python或pip版本问题,也有可能是因为环境变量的配置问题出错,对症下药即可。
安装完成后,进行测试,输入scrapy,得到其信息如下,则可以正常使用。
在这里插入图片描述

3、scrapy使用

创建

打开cmd,进入将要创建爬虫的地址,输入

scrapy startproject 项目名
cd 项目名
scrapy genspider 爬虫名 域名

完成后,用PyCharm打开项目后,可以看到创建后目录大致页如下(result文件夹是后面添加的,创建时没有该文件)
在这里插入图片描述

spiders下的baidu.py是scrapy自动为我们生成的,后面我们将使用该文件。

配置setting.py

打开setting.py文件
BOT_NAME:项目名

USER_AGENT:默认是注释的,这个东西非常重要,如果不写很容易被判断为电脑,简单写一个Mozilla/5.0即可

ROBOTSTXT_OBEY:是否遵循机器人协议,默认是true,需要改为false,否则很多东西爬不了
在这里插入图片描述
DOWNLOAD_DELAY:下载延迟时间,单位是秒,控制爬虫爬取的频率,根据你的项目调整,不要太快也不要太慢,默认是3秒,即爬一个停3秒,设置为1秒性价比较高,如果要爬取的文件较多,写零点几秒也行
在这里插入图片描述

试用与运行

到这里我们尝试用scrapy做一下爬取,打开spider.py下的baidu.py(取决于你scrapy genspider 爬虫名 域名时输入的爬虫名)

输入一下代码,我们抓取百度搜索“机器学习”的结果写入result.html文件中

import scrapy

class BaiduspiderSpider(scrapy.Spider):
    # 爬虫名
    name = 'baiduSpider'  # 一定要存在
    # 允许爬虫的范围
    allowed_domains = ['www.baidu.com']
    start_urls = ['http://www.baidu.com/s?wd=机器学习']

    def parse(self, response):
         # 抓取后写入result中
         filename = "../result/result.html"
         with open(filename, 'wb') as f:
             f.write(response.body)

这样我们的抓取器就做好了,cmd进入baidu_search/baidu_search/目录,执行:

scrapy crawl baidu_search

也可以写一个如下的run文件,再执行(方便后面的使用,毕竟每次都用cmd,就很麻烦)

from scrapy import cmdline

cmdline.execute('scrapy crawl baiduSpider'.split())

注意!!此时如果setting文件尚未修改,则抓取不到数据。

语料提取

进行实操前说一下Xpath。
XML路径语言(XML Path Language),它是一种用来确定XML文档中位置的语言。Xpath基于XML的树状结构,提供在数据结构树中找寻节点的能力。

“/”:绝对路径,从根节点开始
eg:/html/body/form/input ——查找html下的body下的form下的所有input节点

“//”:相对路径
eg://input ——查找所有input节点

“*”:通配符,选择未知节点
eg://form/* ——查找form节点下的所有节点

“@”:属性符
eg://input[@name] ——定位所有包含name属性的input节点
eg://input[@value=‘2’] ——定位所有value=2的i

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 说明 该库是对目前市面上已有的开源中文聊天语料的搜集和系统化整理工作 该库搜集了包含 - chatterbot - 豆瓣多轮 - PTT八卦语料 - 青云语料 - 电视剧对白语料 - 贴吧论坛回帖语料 - 微博语料 - 小黄鸡语料 共8个公开闲聊常用语料和短信,白鹭时代问答等语料。 并对8个常见语料的数据进行了统一化规整和处理,达到直接可以粗略使用的目的。 **使用该项目,即可对所有的聊天语料进行一次性的处理和统一下载,不需要到处自己去搜集下载和分别处理各种不同的格式。* # 环境 python3 # 处理过程 将各个来源的语料按照其原格式进行提取,提取后进行繁体字转换,然后统一变成一轮一轮的对话。 # 使用方法 将解压后的raw_chat_corpus文件夹放到当前目录下 目录结构为 ``` raw_chat_corpus -- language -- process_pipelines -- raw_chat_corpus ---- chatterbot-1k ---- douban-multiturn-100w ---- .... -- main.py -- ... ``` 执行命令即可 ```bash python main.py ``` 或者 ```bash python3 main.py ``` # 生成结果 每个来源的语料分别生成一个独立的*.tsv文件,都放在新生成的clean_chat_corpus文件夹下。 生成结果格式为 tsv格式,每行是一个样本,先是query,再是answer ``` query \t answer ``` # 结果的使用 这个就根据每个人不同的情况自主使用即可 个人对于聊天机器人方向实践也不是很多,以下一篇之前写的知乎专栏供参考 **《从产品完整性的角度浅谈chatbot》** 文章粗略讲解了如下一些方面,介绍了聊天机器人在实际产品化过程中可能遇到的问题和解决办法。 1. chatbot自身人格的设置 1. 产品上线需要考虑的敏感词处理 1. 文本检索模型的使用 1. 文本生成模型的使用 1. 回答打分机制 1. 万能回答的使用策略 1. 多媒体消息的处理 1. 产品模型部署的问题 # 版权说明 本项目为非商业项目,为纯搜集和汇总资料,如有侵权,请在issue下留言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值