掌握NLTK:Python自然语言处理库中级教程

在之前的初级教程中,我们已经了解了NLTK(Natural Language Toolkit)的基本用法,如进行文本分词、词性标注和停用词移除等。在本篇中级教程中,我们将进一步探索NLTK的更多功能,包括词干提取、词形还原、n-gram模型以及词云的绘制。

一、词干提取

词干提取是一种将词语简化为其基本形式或词干的过程。例如,"running"、"runner"和"ran"的词干可能都是"run"。在NLTK中,我们可以使用Porter词干提取器进行词干提取:

python 复制代码
from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenize

ps = PorterStemmer()

words = ["run", "runner", "running", "ran"]
for w in words:
    print(ps.stem(w))

二、词形还原

与词干提取相似,词形还原也是简化词语的一种方式,但它保留的是词语的词形,而不仅仅是词干。在NLTK中,我们可以使用WordNet词形还原器进行词形还原:

python 复制代码
from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()

print(lemmatizer.lemmatize("running"))
print(lemmatizer.lemmatize("ran", pos='v'))

三、n-gram模型

n-gram是一种语言模型,用于预测下一个词的可能性。n-gram模型基于统计的方法,考虑前n-1个词来预测下一个词。在NLTK中,我们可以使用ngrams函数来生成n-gram:

python 复制代码
from nltk import ngrams
from nltk.tokenize import word_tokenize

sentence = "I love to play football"
n = 2
grams = ngrams(word_tokenize(sentence), n)
for gram in grams:
    print(gram)

四、绘制词云

词云是一种可视化技术,用于表示文本数据中词的频率。在NLTK中,虽然没有直接提供绘制词云的函数,但我们可以结合wordcloud库来创建词云:

python 复制代码
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "NLTK is a leading platform for building Python programs to work with human language data."
stop_words = set(stopwords.words('english'))

words = word_tokenize(text)
words = [word for word in words if word not in stop_words]

wordcloud = WordCloud().generate(' '.join(words))

plt.imshow(wordcloud)
plt.axis("off")
plt.show()

以上,我们介绍了NLTK库中的一些中级功能,包括词干提取、词形还原、n-gram模型和词云的绘制等。然而,NLTK还有更多高级的功能和特性,如情感分析、语义角色标注等,值得我们进一步探索和学习。

相关推荐
冯仙笙3 分钟前
统一支付入口集成六种支付方式
后端
无双_Joney15 分钟前
[更新迭代 - 1] Nestjs 在24年底更新了啥?(功能篇)
前端·后端·nestjs
数据智能老司机20 分钟前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机20 分钟前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机21 分钟前
精通 Python 设计模式——性能模式
python·设计模式·架构
泉城老铁23 分钟前
idea 优化卡顿
前端·后端·敏捷开发
福大大架构师每日一题28 分钟前
RustDesk 1.4.2 版本发布:新增增量文件传输与光标显示功能
后端
LH_R30 分钟前
OneTerm开源堡垒机实战(四):访问授权与安全管控
运维·后端·安全
poemyang30 分钟前
技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网的?
后端·面试·架构
c8i30 分钟前
drf初步梳理
python·django