1. nltk简介

  http://www.nltk.org

2. nltk能做什么?

2.1 搜索文本

  • 单词搜索
  • 相似词搜索
  • 相似关键词识别
  • 词汇分布图
  • 生成文本
  1. from nltk.book import *
  2.  
  3. # 词语搜索
  4. print('搜索词monstrous->')
  5. text1.concordance('monstrous')
  6.  
  7. print('上下文相似词->')
  8. # 上下文相似词, 没有返回值
  9. text2.similar('monstrous')
  10.  
  11. # 共同上下文
  12. print('monstrous, very共同上下文')
  13. text2.common_contexts(['monstrous', 'very'])
  14.  
  15. # 词汇分布表
  16. text4.dispersion_plot(['citizens', 'democracy', 'freedom', 'duties', 'America'])
  17.  
  18. # 词数统计
  19. len(text3)
  20.  
  21. # 出现的不重复词语的词数
  22. len(set(text3))
  23.  
  24. # 排序
  25. sorted(set(text3))
  26.  
  27. # 重复词密度
  28. from __future__ import division
  29. len(text3) / len(set(text3))
  30.  
  31. # 关键词密度
  32. text3.count('smote')
  33. 100 * text4.count('a') / len(text4)
  34.  
  35. # 平均词密度, 平均每个词出现的词数
  36. def lexical_diversity(text):
  37. return len(text) / len(set(text))
  38.  
  39. lexical_diversity(text1)

2.2  计数词汇

3. 词链表

  1. print(sent1) # ['Call', 'me', 'Ishmael', '.']
  2. print(sent1[1:3])

3.1 词频分布

nltk内置的统计类:FeDist

  1. fdist = FreqDist(text1)
  2. print(fdist)

  1. # 频率累计分布图
  2. fdist.plot(50, cumulative=True)

频率累计分布图:

  丢弃高频且没有意义的词,或者是抽取具有P特性(例如词的长度大于15)的词汇。

  1. # 细粒度的选择词
  2. V = set(text5)
  3. long_words = [w for w in V if len(w) >= 15]
  4. sorted(long_words)
  5.  
  6. # 综合词的长度和词频,进行筛选
  7. sorted([w for w in set(text5) if len(w) > 7 and fdist[w] > 7])

  词语搭配:

  1. from nltk.util import bigrams # 二元语法, trigrams 三元语法
  2.  
  3. list(bigrams(['more', 'is', 'said', 'than', 'done'])) # [('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]
  1. # 经常出现的双联次
    text1.collocations()

  词长分布,对作者的文章也是有影响的:

  1. # 词长分布
  2. fdist = FreqDist([len(w) for w in text1])
  3.  
  4. fdist.items()
  5. # dict_items([(1, 47933), (4, 42345), (2, 38513), (6, 17111), (8, 9966), (9, 6428), (11, 1873), (5, 26597), (7, 14399), (3, 50223), (10, 3528), (12, 1053), (
  6. # 13, 567), (14, 177), (16, 22), (15, 70), (17, 12), (18, 1), (20, 1)])

4. 自然语言处理(NLP)

自然语言:自然的随着文化演化的语言,就是人们日常使用的语言。

自然语言处理:用计算机对自然语言进行操作。

自然语言研究的内容:

  • 此意消岐
  • 指代理解
  • 自动生成语言
  • 机器翻译
  • 人机对话系统
  • 文本含义识别

5. nltk语料库

end

nltk模块的更多相关文章

  1. nltk模块基础操作

     几个基础函数 (1)搜索文本:text.concordance(word) 例如,在text1中搜索词”is”在文本中出现的次数以及上下文的词:text1.concordance("is& ...

  2. 【NLP】Python NLTK 走进大秦帝国

    Python NLTK 走进大秦帝国 作者:白宁超 2016年10月17日18:54:10 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公 ...

  3. 自然语言处理(1)之NLTK与PYTHON

    自然语言处理(1)之NLTK与PYTHON 题记: 由于现在的项目是搜索引擎,所以不由的对自然语言处理产生了好奇,再加上一直以来都想学Python,只是没有机会与时间.碰巧这几天在亚马逊上找书时发现了 ...

  4. NLTK 3.2.2 安装经验

    NLTK 3.2.2 安装经验 Nltk 3.2.2要求Python版本是Python2.7 或者Python3.4+. Nltk 3.2.3 如果是从网站上直接下载程序进行安装可能会报错:Pytho ...

  5. NLP入门(三)词形还原(Lemmatization)

      词形还原(Lemmatization)是文本预处理中的重要部分,与词干提取(stemming)很相似.   简单说来,词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的单词会是字典中的单 ...

  6. zwPython,字王集成式python开发平台,比pythonXY更强大、更方便。

    zwPython,字王集成式python开发平台,比pythonXY更强大.更方便. 更强大,内置opencv.cuda/opencl.NLTK自然语言.pygame游戏设计等多个重量级模块库. 更方 ...

  7. 深度学习之 TensorFlow(一):基础库包的安装

    1.TensorFlow 简介:TensorFlow 是谷歌公司开发的深度学习框架,也是目前深度学习的主流框架之一. 2.TensorFlow 环境的准备: 本人使用 macOS,Python 版本直 ...

  8. 词义消除歧义NLP项目实验

    词义消除歧义NLP项目实验 本项目主要使用https://github.com/alvations/pywsd 中的pywsd库来实现词义消除歧义 目前,该库一部分已经移植到了nltk中,为了获得更好 ...

  9. NLP(一)

    “自然语言处理”(Natural Language Processing 简称 NLP)包含所有用计算机对自然语言进行的操作. 自然语言工具包(NLTK) 语言处理任务与相应 NLTK 模块以及功能描 ...

随机推荐

  1. ansible 常用模块的使用

    安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...

  2. 波利亚(Polya)罐子模型

    (波利亚(Polya)罐子模型)罐中有a个白球,b个黑球,每次从罐中随机抽取一球,观察其颜色后,连同附加的c个同色球   (波利亚(Polya)罐子模型)罐中有a个白球,b个黑球,每次从罐中随机抽取一 ...

  3. RDLC报表的相关技巧二(主从报表)

    为了广泛支持客户端,系统框架运行在.Net Framework 4.0之上,Report viewer的版本也限制在11.0.3366.16. 使用NUGET安装Microsoft.ReportVie ...

  4. MVC模式学习--雇员管理系统项目开发

    1, 项目开发,使用原型开发, ① 开发流程: 需求分析->设计阶段->编码阶段->测试阶段->发布阶段/维护阶段 需求阶段:PM/项目经理 对客户 设计阶段:技术人员(架构师 ...

  5. P4168 [Violet]蒲公英 区间众数

    $ \color{#0066ff}{ 题目描述 }$ 在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关. 为了简化起见,我们把所有的蒲公英看成一个长度为n的序列 \((a_1,a_2.. ...

  6. leetcode-747-Largest Number At Least Twice of Others(求vector的最大值和次大值)

    题目描述: In a given integer array nums, there is always exactly one largest element. Find whether the l ...

  7. jquery 实现省市二级联动

    效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. Rx

    more detailed in WIKI's document SDP :session description protocal book AAA AA-Answer 鉴权授权应答AAR AA-R ...

  9. Jenkins windows部署

    1.安装jenkins 进入https://jenkins.io/download/,下载windows安装包,解压后运行jenkins.msi进行安装. 配置jenkins (1)打开http:// ...

  10. Mbps、Kbps、KBps的关系

    1. 每秒钟传输的二进制位数的单位:bps.Kbps.Mbps Mbps是Million bits per second的缩写,它的意思是时间内传输数据的平均比特数. Mbps=Mbit/s即兆比特每 ...