目录

  • 简述
    • 一、NLTK
      • 1、安装
      • 2、搜索
      • 3、词统计
    • 二、语料与词汇资源
      • 1、举例
      • 2、类似的语料库还有:
      • 3、语料库的通用接口:
      • 4、其他词典资源:
      • 5、加载自己的语料库
  • 结语

简述

2021.3.8——3.28,该段时间我们的目标进度是实现聊天机器人的提问处理模块内容。时间紧任务重,所以今天我做了一些项目开始前的基本准备工作,为接下来的项目做一些小小的铺垫。

一、NLTK

NLTK(Natural Language Toolkit)是一个比较优秀的自然语言处理工具包,是我们实现聊天机器人需要的比较重要的一个工具。在后续的程序实现中,我们需要通过他里面的数据来进行学习和练习。

1、安装

直接

pip install nltk

安装即可,但是因为是外网的原因,CMD下载速度极慢,建议科学上网(后面下载book的时候最好还是用梯子,不然那几kb/s的速度下载100多兆着实让人暴躁),或者采用清华大学的镜像服务器安装:

pip install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple

nltk下好之后,运行

nltk.download()

在出现的界面中选择book下载即可。
接下来执行:

from nltk.book import *

将会得到如下结果

里面的text*都是书籍节点,后面输出的为书籍名,可以使用print(text1)返回书籍节点1的书籍名。

2、搜索

使用 concordance 函数搜索包含某词的上下文

print(text1.concordance("love"))

输出结果为:

使用 similar 函数可以搜索相关词

print(text1.similar("ship"))

返回

使用 common_contexts 获得两个或两个以上的词的共同的上下文

print(text2.common_contexts(['monstrous','very']))

使用 dispersion_plot 可以判断词在文本中的位置;竖线代表单词,行代表文本;可以用来研究随时间推移语言使用上的变化

print(text4.dispersion_plot(['citizens','democracy','freedom','duties','America']))

输出图片

3、词统计

len(text1):返回总字数
set(text1):返回文本的所有词集合len(set(text4)):返回文本总词数
text4.count(“is”):返回“is”这个词出现的总次数
FreqDist(text1):统计文章的词频并按从大到小排序存到一个列表里
fdist1.hapaxes():返回只出现一次的词
text4.collocations():频繁的双联词
fdist1 = FreqDist(text1); 统计词频
fdist1.plot(50, cumulative=True):输出累计图像
纵轴表示累加了横轴里的词之后总词数是多少,这样看来,这些词加起来几乎达到了文章的总词数。

二、语料与词汇资源

1、举例

nltk下有多个语料库,以Gutenberg语料库为例,执行

print(nltk.corpus.gutenberg.fileids())

返回Gutenberg语料库的文件标识符

nltk.corpus.gutenberg就是gutenberg语料库的阅读器,它有很多实用的方法,比如:
nltk.corpus.gutenberg.raw(‘chesterton-brown.txt’):输出chesterton-brown.txt文章的原始内容
nltk.corpus.gutenberg.words(‘chesterton-brown.txt’):输出chesterton-brown.txt文章的单词列表
nltk.corpus.gutenberg.sents(‘chesterton-brown.txt’):输出chesterton-brown.txt文章的句子列表

2、类似的语料库还有:

from nltk.corpus import webtext:网络文本语料库,网络和聊天文本
from nltk.corpus import brown:布朗语料库,按照文本分类好的500个不同来源的文本
from nltk.corpus import reuters:路透社语料库,1万多个新闻文档
from nltk.corpus import inaugural:就职演说语料库,55个总统的演说

3、语料库的通用接口:

fileids():返回语料库中的文件
categories():返回语料库中的分类
raw():返回语料库的原始内容
words():返回语料库中的词汇
sents():返回语料库句子
abspath():指定文件在磁盘上的位置
open():打开语料库的文件流

4、其他词典资源:

有一些仅是词或短语以及一些相关信息的集合,叫做词典资源。
词汇列表语料库:nltk.corpus.words.words(),所有英文单词,这个可以用来识别语法错误
停用词语料库:nltk.corpus.stopwords.words,用来识别那些最频繁出现的没有意义的词
发音词典:nltk.corpus.cmudict.dict(),用来输出每个英文单词的发音
比较词表:nltk.corpus.swadesh,多种语言核心200多个词的对照,可以作为语言翻译的基础
同义词集:WordNet,面向语义的英语词典,由同义词集组成,并组织成一个网络

5、加载自己的语料库

收集自己的语料文件(文本文件)到某路径下(比如/lym),然后执行:

from nltk.corpus import PlaintextCorpusReadercorpus_root = '/lym'
wordlists = PlaintextCorpusReader(corpus_root, '.*')
wordlists.fileids()

就可以列出自己语料库的各个文件了,也可以使用如wordlists.sents(‘a.txt’)和wordlists.words(‘a.txt’)等方法来获取句子和词信息

结语

明天项目实训就要正式开始了,就用我这第一篇博客揭开项目实训的序章,也希望能够在日后的博客中记录项目的进度和我的成长。

【ChatBot开发笔记】聊天机器人准备工作——初识NLTK库、语料与词汇资源相关推荐

  1. 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第02章 获得文本语料和词汇资源

    第02章 获得文本语料和词汇资源 2.1 获取文本语料库 古腾堡语料库 网络和聊天文本 布朗语料库 路透社语料库 就职演说语料库 标注文本语料库 在其他语言的语料库 文本语料库的结构 载入你自己的语料 ...

  2. 机器人编程python代码_自己动手开发智能聊天机器人完全指南(附python完整源码)...

    一.前言 人工智能时代,开发一款自己的智能问答机器人,一方面提升自己的AI能力,另一方面作为转型AI的实战练习.在此把学习过程记录下来,算是自己的笔记. 二.正文 2.1 下载pyaiml 下载pya ...

  3. 聊天机器人mysql数据_自己动手开发智能聊天机器人完全指南(附完整源码)

    一.前言 本文是<自己动手开发智能聊天机器人完全指南(附完整源码)>的第二篇,也是21天实战人工智能系列<知识图谱完全项目案例剖析>里面的知识图谱应用的案例.前文中实现了一个最 ...

  4. JRtplib开发笔记(二):JRtplib库编译、示例演示

    原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84 ...

  5. 自己动手做聊天机器人 三-语料与词汇资源

    当代自然语言处理都是基于统计的,统计自然需要很多样本,因此语料和词汇资源是必不可少的,本节介绍语料和词汇资源的重要性和获取方式 请尊重原创,转载请注明来源网站www.shareditor.com以及原 ...

  6. libzip开发笔记(一):libzip库介绍、编译和工程模板

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/111876926 长期持续带来更多项目与技术分 ...

  7. python nlp_【NLP】Python NLTK获取文本语料和词汇资源

    作者:白宁超 2016年11月7日13:15:24 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开数据集.模型上提供了全面.易用的接口, ...

  8. 2022.11.22 flaks项目开发-简单聊天机器人

    介绍: 1.简单聊天机器人功能:1.在输入框中输入你的语句,机器人会自动回答你的问题 2.static文件夹保存静态文件templates文件夹保存html代码sample.py是程序源代码及程序入口 ...

  9. python开发qq聊天机器人_Python qqbot 实现qq机器人的示例代码

    qqbot 是一个用 python 实现的.基于腾讯 SmartQQ 协议的 QQ 机器人框架,可运行在 Linux . Windows 和 Mac OSX 平台下. 你可以通过扩展 qqbot 来实 ...

最新文章

  1. RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass
  2. 135. 分发糖果(贪心算法)
  3. 黑马程序员的课程不如兄弟连兄弟会好
  4. kafka记录及面试题
  5. Result Maps collection already contains value for ***的问题
  6. 【LeetCode笔记】312. 戳气球(Java、动态规划)
  7. div中内部div横向布局
  8. div显示图片_图片按照百分比显示部分,不变形
  9. php感悟1500,《与美同行》读后感1500字
  10. 23-Python-RabbitMQ
  11. WorldList4
  12. EP100含有.S文件的bootloader
  13. 分享WEB快速开发工具
  14. Transformer结构详解
  15. Mac如何创建快捷方式?
  16. 【记Unexpected token】
  17. 欠债还钱,天经地义: 开发团队如何还技术债?
  18. 消费者需求研究能够解决什么问题
  19. SuperMap iServer常见问题解答集锦(十五)
  20. HTML5游戏开发–第10课

热门文章

  1. 五个强盗分金币的问题分析(博弈论)
  2. 【ava数据集可视化】ava数据集ID可视化 A Video Dataset of Spatio-temporally Localized Atomic Visual Actions
  3. ZZULIOJ-2905
  4. 控制台报错:Unknown database ‘xxxxx‘
  5. C#窗体Click事件没反应
  6. 微信开放平台和公众平台的区别?
  7. .xb文件腾讯云备份恢复
  8. python读取文本并且替换_python 读取文件并替换字段的实例
  9. Unity translucent SSS 次表面散射 皮肤材质研究
  10. 设计模式-行为型模式,状态模式(14)