Python自然语言处理第一章 - 语言处理与Python
我的运行环境
- python 3.5.2
- nltk 3.2.1
- nltk-data
- numpy:科学计算库
- matplotlib:数据可视化的2D会图库
因为python、nltk版本不同,所以一些内容可能与书中的内容有所不同
一,搜索文本
1,词语索引视图:显示指定单词的出现情况,同时还可以显示一些上下文
text1.concordance('monstrous')
2,查询并显示与指定关键词相似的上下文的词语:
text1.similar('monstrous')
3,可以共用两个或者两个以上词语的上下文:
text1.common_contexts(["montrous","very"])
4,判断词在文本中的位置:从文本开头算起有多少次出现:
text1.dispersion_plot(["freedom","citizens","duties"])
5,随机产生一些文本:
text1.generate()
但是在NLTK3.0中已经不再支持此函数!
二,计数词汇
1,token 与type 的区别:
例如: how do you do中有四个token但只有3个type。
2,文本词汇的丰富度的测量:
len(text1)/len(set(text1))
3,特定词占文本的百分比:
100*text1.count("smoke")/len(text1)
三,python列表的操作
1,连接
sent1+sen2
2,追加
sent1.append('some')
3,求索引
text4.index('awake')
4,slice (切片)
5,字符串乘法:
name = 'Hello'
name = name*2
此时name = ‘HelloHello’
6,字符串的连接与分割:
>>>' '.join(['hello','world'])
'hello world'
>>>'hello world'.split()
['hello','world']
7,词汇比较运算符
四,简单的统计
1,频率分布:FreqDist()
此与书中有所区别
fdist1 = FreqDist(text1) #返回的是类似dict的类型
fdist_list = sorted(fdist1.items(),key=lambda k:k[1],reverse=True) #返回list类型,并且按照频率从大到小排好序
vocabulary1 = [k[0] for k in fdist_list]
print(vocabulary1[:50])
2,累积频率图
fdist1.plot(50,cumulative=True)
3,低频词汇
fdist1.hapaxes()
4,细粒度的选择词:通过列表生成式获得。例如:
long_words = [w for w in set(text1) if len(w)>15]
5,词语搭配与双连词
- 双连词可以使用bigrams()
- 词语搭配(频繁的双连词)可以使用:text1.collocations()
6,计算一个文本中的词汇长度的频率分布
len_list = [len(w) for w in text1]
fdist = FreqDist[len_list]
fdist.keys()
fdist.items()
fdist.max()
fdist.freq(3)
7,NLTK频率分布类中定义的函数
五,自动理解自然语言
自然语言处理的全景图
- 词义消歧
- 指代消解
- 自动语言生成:自动问答和及其翻译
- 人机对话系统
- 文本含义识别
六,小结
- 在Python 中文本用链表来表示:[‘Monty’, ‘Python’]。我们可以使用索引、分片和l
en()函数对链表进行操作。 - 词“token”(标识符)是指文本中给定词的特定出现;词“type”(类型)则是指词作为一个特定序列字母的唯一形式。我们使用len(text)计数词的标识符,使用len(set(text))计数词的类型。
- 我们使用sorted(set(t))获得文本t 的词汇表。
- 我们使用[f(x) for x in text]对文本的每一项目进行操作。
- 为了获得没有大小写区分和忽略标点符号的词汇表,我们可以使用set([w.lower() f
or w in text if w.isalpha()])。 - 我们使用for 语句对文本中的每个词进行处理,例如for win t:或者for word in te
xt:。后面必须跟冒号和一块在每次循环被执行的缩进的代码。 - 我们使用if 语句测试一个条件:if len(word)<5:。后面必须跟冒号和一块仅当条件为
真时执行的缩进的代码。 - 频率分布是项目连同它们的频率计数的集合(例如:一个文本中的词与它们出现的频
率)。 - 函数是指定了名字并且可以重用的代码块。函数通过def 关键字定义,例如在def mu
lt(x, y)中x 和y 是函数的参数,起到实际数据值的占位符的作用。 - 函数是通过指定它的名字及一个或多个放在括号里的实参来调用,就像这样:mult(3,
4)或者len(text1)。
七,深入阅读
NLTK官网
Python官方文档
LanguageLog一个流行语言学博客
Python自然语言处理第一章 - 语言处理与Python相关推荐
- Python自然语言处理 第一章 课后习题答案
前言:从今天开始正式学习自然语言处理,同时还有统计学习方法和机器学习.希望能够一直坚持下去. (以下答案非标准答案,如有错误请积极回复.谢谢理解.) 正文 在开始之前首先引入nltk和nltk.boo ...
- python自然语言处理 第一章习题
1. 尝试使用Python解释器作为一个计算器,输入表达式,如:12/(4+1) >>> 12/(4+1) 2.4 2. 26 个字母可以组成 26 的 10 次方或者 26**10 ...
- 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第01章 语言处理与Python
第01章 语言处理与Python 1.1 语言计算:文本和单词 Python入门 NLTK 入门 搜索文本 计数词汇 1.2 近观Python:将文本当做词链表 链表(list,也叫列表) 索引列表 ...
- Python精确指南-第一章环境
1 Python开发环境搭建 1.1 Python版本介绍 Python目前官方运营维护的版本分为2.x版本和3.x版本. 2.x版本相对来说,稳定性更高,兼容的主流第三方扩展库更 ...
- Python程序设计基础第一章笔记:Python概述
Python程序设计基础笔记 目录 Python程序设计基础笔记 第一章:python概述 1.1 python是这样一种语言 1.2 python版本之争 略 1.3 python编程规范与代码优化 ...
- 【Python CLI】第一章 CLI 应用程序介绍
系列文章目录 [Python CLI]第一章 CLI 应用程序介绍 [Python CLI]第二章 命令解析 [Python CLI]第三章 格式化输出 [Python CLI]第四章 程序控制台 文 ...
- 路飞学城python电子书_路飞学城-Python开发集训-第一章
路飞学城-Python开发集训-第一章 1.本章学习心得.体会 我: 间接性勤奋. 我: 学习方法论:输入--输出---纠正 我: 对对对 走出舒适区, 换圈子, 转思路,投资自我加筹码. 我: 圈子 ...
- 《Python自然语言处理》——第1章 语言处理与Python 1.1 语言计算:文本和词汇...
本节书摘来自异步社区<Python自然语言处理>一书中的第1章,第1.1节,作者[美]Steven Bird,Ewan Klein,Edward Loper, 陈涛,张旭,崔杨,刘海平 译 ...
- 《用Python进行自然语言处理》第 1 章 语言处理与 Python
1. 将简单的程序与大量的文本结合起来,我们能实现什么? 2. 我们如何能自动提取概括文本风格和内容的关键词和短语? 3. Python 编程语言为上述工作提供了哪些工具和技术? 4. 自然语言处理中 ...
最新文章
- 华为视觉研究路线图:三大挑战,六项计划
- 美国科学家成功恢复老年人工作记忆,望奠定认知干预疗法基础
- MFC指定位置画位图
- 30分钟回顾AI数学基础知识(一)
- php 编译 线程安全,PHP7(zts 线程安全版)编译安装(支持多线程pthreads)
- powerdesigner连接db2生成模型步骤
- 如何让小程序页面更顺滑_小程序怎样让wx.navigateBack更好用的方法实现
- ATL--创建简单的ATL之dll工程,给接口添加属性(实际上就是一个函数对)
- Ubuntu把iso写入U盘
- AutoCad 二次开发(一) 开发环境搭建
- 《个人信息去标识化指南》笔记
- JZOJ4722. 跳楼机
- FastAdmin多表联查
- 如何在Linux Shell脚本中添加GUI
- zk-snark的算法详解
- 使用树莓派进行pH测定
- 大学生计算机PHP实训报告,大学生计算机实训心得体会
- 解决声卡爆音/杂音的四种方法
- 2026. 低质量的问题
- java程序员 待遇_现在的java程序员薪资待遇怎么样?
热门文章
- java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)
- 罗辑思维2017跨年演讲——摘录
- mysql distinct 慢_分析MySQL中优化distinct的技巧
- MySQL数据库肖睿版_正版 MySQL数据库应用技术及实战肖睿MySQL数据库数据操作数据恢复备份MySQL数据库优化My...
- 生成卡号点击按钮生成卡号
- 计算机机房ups供电时间多少,机房UPS的供电时间是多久
- 交通运输部发文,道路运输电子证照支持使用电子印章在线签署
- 制作最小linux镜像,Docker镜像的无中生有:使用scratch制作自定义最小镜像
- 学计算机应用好还是学计算机平面设计好,平面设计与计算机应用哪个好?
- 浪潮和华为相比,到底差什么?