python自然语言处理——1.1语言计算:文本和词汇

时间:2022-01-10 06:43:23

微信公众号:数据运营人
本系列为博主的读书学习笔记,如需转载请注明出处。

第一章 语言处理与python

1.1 语言计算:文本和词汇python入门NLTK入门探索文本计数词汇

1.1 语言计算:文本和词汇

python入门

下载安装路径:http://www.python.org,安装成功后可在python的IDLE中进行测试

NLTK入门

NLTK的官网:http://www.nltk.org/

NLTK中模块及功能介绍:

语言处理任务 NLTK模块 功能描述
获取和处理语料库 nltk.corpus 语料库的词典的标准化接口
字符串处理 nltk.tokennize,nltk.stem 分词句子分解提提取主干
搭配发现 nltk.collocations t-检验,卡方,点互信息PMI
词性标识符 nltk.tag n-gram,backoff,brill,EM,k-means
分类 nltk.classify, nltk.cluster 决策树,最大熵,贝叶斯,EM,k-means
分块 nltk.chunk 正则表达式, n-gram,命名实体
解析 nltk.parse 图表,基于特征,一致性,概率,依赖
语义解释 nltk.sem, nltk.inference λ演算,一阶逻辑,模型检验
指标评测 nltk.metrics 精度,召回率,协议系数
概率与估计 nltk.probability 频率分布,平滑概率分布
应用 nltk.app, nltk.chat 图形化的关键词排序,分析器, WordNet查看器,聊天机器人
语言学领域的工作 nltk.toolbox 处理 SIL工具箱格式的数据

NLTK的安装:pip install nltk

1# 下载nltk图书合集
2import nltk
3nltk.download()

选择book所在的行,获取本书所有例子和练习需要的全部数据。

python自然语言处理——1.1语言计算:文本和词汇

从NLTK的book模块中加载所有的条目,book模块中包含本书中的所有数据。

1from nltk.book import *  
2text1
3text2

返回结果:

python自然语言处理——1.1语言计算:文本和词汇
探索文本

# 查找text1文本中词monstrous出现的上下文
# 查找text2文本中词affection出现的上下文
# 查找text3文本中词lived出现的上下文

1text1.concordance('monstrous')
2text2.concordance('affection')
3text3.concordance('lived')

返回结果:

python自然语言处理——1.1语言计算:文本和词汇

python自然语言处理——1.1语言计算:文本和词汇

# 查找在text1中,monstrous的近义词或出现在相似的上下文中的词
# 查找在text2中,monstrous的近义词或出现在相似的上下文中的词

1text1.similar('monstrous')
2text2.similar('monstrous')

返回结果:

python自然语言处理——1.1语言计算:文本和词汇

# 查找在text2中,同时出现monstrous和very的词的上下文中

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

返回结果:

python自然语言处理——1.1语言计算:文本和词汇

# 绘制在text4(美国总统就职演说)文本中,这五个词语citizens,democracy,freedom,duties,America随时间推移语言使用上的变化

1text4.dispersion_plot(['citizens','democracy','freedom','duties','America'])
python自然语言处理——1.1语言计算:文本和词汇
计数词汇

# 查看text3文本的长度
# 对text3中的文本去重并进行排序
# 对text3文本去重并计算长度

1len(text3)
2sorted(set(text3))
3len(set(text3))

返回结果:

python自然语言处理——1.1语言计算:文本和词汇

# 定义函数

1# 文本中每个词的平均使用次数
2def lexical_diversity(text):
3    return len(text) / len(set(text))
4# 文本中某个词的使用率(百分比)
5def percentage(text,word):
6    return 100*text.count(word)/len(text)

返回结果:

python自然语言处理——1.1语言计算:文本和词汇