初识NLTK库

NLTK是一个比较优秀的自然语言处理工具包,是我们聊天机器人需要的比较重要的一个工具

NLTK库安装

pip install nltk

执行python并下载书籍:

[root@centos #] python
Python 2.7.11 (default, Jan 22 2016, 08:29:18)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> nltk.download()

选择book后点Download开始下载

下载完成以后再输入:

>>> from nltk.book import *

你会看到可以正常加载书籍如下:

*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908

这里面的text*都是一个一个的书籍节点,直接输入text1会输出书籍标题

>>> text1
<Text: Moby Dick by Herman Melville 1851>

搜索文本

执行

>>> text1.concordance("former")

会显示20个包含former的语句上下文
我们还可以搜索相关词,比如:

>>> text1.similar("ship")
whale boat sea captain world way head time crew man other pequod line
deck body fishery air boats side voyage

输入了ship,查找了boat,都是近义词
我们还可以查看某个词在文章里出现的位置:

>>> text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])

词统计

len(text1):返回总字数

set(text1):返回文本的所有词集合

len(set(text4)):返回文本总词数

text4.count("is"):返回“is”这个词出现的总次数

FreqDist(text1):统计文章的词频并按从大到小排序存到一个列表里

fdist1 = FreqDist(text1);fdist1.plot(50, cumulative=True):统计词频,并输出累计图像


纵轴表示累加了横轴里的词之后总词数是多少,这样看来,这些词加起来几乎达到了文章的总词数

fdist1.hapaxes():返回只出现一次的词

text4.collocations():频繁的双联词

自然语言处理关键点

词意理解:中国队大胜美国队;中国队大败美国队。“胜”、“败”一对反义词,却表达同样的意思:中国赢了,美国输了。这需要机器能够自动分析出谁胜谁负

自动生成语言:自动生成语言基于语言的自动理解,不理解就无法自动生成

机器翻译:现在机器翻译已经很多了,但是还很难达到最佳,比如我们把中文翻译成英文,再翻译成中文,再翻译成英文,来回10轮,发现和最初差别还是非常大的。

人机对话:这也是我们想做到的最终目标,这里有一个叫做“图灵测试”的方式,也就是在5分钟之内回答提出问题的30%即通过,能通过则认为有智能了。

自然语言处理分两派,一派是基于规则的,也就是完全从语法句法等出发,按照语言的规则来分析和处理,这在上个世纪经历了很多年的试验宣告失败,因为规则太多太多,而且很多语言都不按套路出牌,想象你追赶你的影子,你跑的快他跑的更快,你永远都追不上它。另一派是基于统计的,也就是收集大量的语料数据,通过统计学习的方式来理解语言,这在当代越来越受重视而且已经成为趋势,因为随着硬件技术的发展,大数据存储和计算已经不是问题,无论有什么样的规则,语言都是有统计规律的,当然基于统计也存在缺陷,那就是“小概率事件总是不会发生的”导致总有一些问题解决不了。

知行办公,专业移动办公平台 https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com
【Master】zelo,616701261@qq.com
【运营】狼行天下,897221533@qq.com
【产品设计】流浪猫,364994559@qq.com
【体验设计】兜兜,2435632247@qq.com
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com
【java】首席工程师MR_W,feixue300@qq.com
【测试】土镜问道,847071279@qq.com
【数据】喜乐多,42151960@qq.com
【安全】保密,你懂的。

转载地址:http://www.shareditor.com/blogshow?blogId=64

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,637评论 25 708
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,586评论 7 249
  • 有故事的人拥有一颗孩童的心。用一颗孩童的心写我和你的故事来换你不离不弃。 单纯的认为你是我的全部,每天晚安爱你不断...
    写心写海阅读 118评论 0 3
  • 霸星临楚绕指柔, 媵侍入秦芈八子。 车裂商鞅第一王, 幼主登基太后始。 铁血卅六霸天下, 销魂帐内灭戎狄。 司马张...
    悠游鱼阅读 231评论 4 3
  • 在夏天,有的人从我的世界离去, 有的人来到我的世界。 我可能记住她们模样, 又可能遗忘。 夏天来的匆匆, 走的却很...
    雪梦纯郎阅读 235评论 0 2