【自然语言处理】简单而强大的NLTK库

 

NLTK简介

NLTK是Python上著名的⾃然语⾔处理库。⾃带语料库,以及分词等功能。

NLTK被称为“使用Python进行教学和计算语言学工作的绝佳工具”,以及“用自然语言进行游戏的神奇图书馆”。

NLTK提供丰富的模块和功能⬇️

模块功能
nltk.corpus语料库
nltk.tokenize分词
nltk.stem句子主干
nltk.tag词性标识符
nltk.collocation搭配发现
nltk.classify, nltk.cluster分类,分簇
nltk.chunk分块
nltk.parse解析
nltk.probability概率与估计

 
 
 

NLTK简单使用


先检查一下自己的nltk

import nltk

# 查看一下nltk的简介(是否导入成功?)
print(nltk.__doc__)
# 查看一下语料库路径(是否成功下载语料库?)
print(nltk.data.find("corpora"))

 


瞧瞧自带的语料库

from nltk.corpus import brown		# 导入Brown语料库

print(brown.categories())	# 类别
print(brown.fileids())		# 文件
print(brown.sents())		# 句子
print(brown.words())		# 词语
from nltk.corpus import udhr		# 人权宣言语料库
print(udhr.fileids())
print(udhr.words(fileids = "Chinese_Mandarin-GB2312"))    #fileids可省略

在这里插入图片描述


 
做一些简单的统计

from nltk.book import *         # 导入Book语料库下的book1,book2,book3...

# 获取词频(词语, 次数)
len(text1)               # 单词的个数(单词有重复,甚至包含标点符号)
len(set(text1))          # set得到词汇表,len(set(...))即词汇的种类数(这个词汇表仍包含标点符号)
sorted(set(text1))       # 将词汇表按英文字母排序
text1.count('FBI')       # 某个特定词出现的次数

# 计算每个词汇的平均使用次数
def token_avg(text):
    return len(text) / len(set(text))

# 计算特定单词占比
def token_proportion(text):
    return text.count('FBI') / len(text)

 
接下来是一个重要的功能——词频统计

from nltk.book import *         # 还是导入Book语料库下的book1,book2,book3...

fd = FreqDist(text1)            # (!!!)获取词频列表

print(fd['she'])                # 某个词的频度
print(fd.most_common(10))       # 频度最高的十个词语及其频度

在这里插入图片描述


 
再结合强大的matplotlib库,可以轻易实现简单的可视化

fd = FreqDist(text1)                # 获取词频
from matplotlib.pyplot import *
fd.plot(10,cumulative=False)        # 可视化前10个词频最高的单词(包括标点 >_<)

在这里插入图片描述


 

下面的例子很能体现自然语言处理的魅力 !

在一部小说(text2)中,Elinor,Marianne,Edward 和Willoughby四个人中有一对夫妻,我们如何判断呢?

text2.dispersion_plot(['Elinor','Marianne','Edward','Willoughby'])

在这里插入图片描述
通过这个离散词频图,我们直观地判断出Elinor和Marianne是一对夫妻

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值