📜  Python – 计算去除停用词和词干后的词频(1)

📅  最后修改于: 2023-12-03 15:34:09.277000             🧑  作者: Mango

Python – 计算去除停用词和词干后的词频

简介

在文本处理中,去除停用词和词干还原是必不可少的。停用词是指在文本中出现频率较高,但不具备实际意义的词汇,例如介词、连词等。词干还原则是将单词还原成其原始形式,例如将“walking”还原成“walk”。

本文将介绍如何使用Python计算去除停用词和词干后的词频。

准备工作

在进行计算之前,需要首先安装nltk库和对应的停用词和词干还原数据包。

!pip install nltk
import nltk
nltk.download('stopwords')
nltk.download('wordnet')
示例代码

以下是计算去除停用词和词干后的词频的示例代码:

import nltk
nltk.download('punkt')
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
from collections import Counter

# 加载停用词和词干还原器
stop_words = set(stopwords.words('english'))
lemmatizer = WordNetLemmatizer()

# 待处理的文本
text = "The quick brown fox jumps over the lazy dog. The dog barks at the fox."

# 分词并去除停用词和标点符号
tokens = word_tokenize(text)
filtered_tokens = [word.lower() for word in tokens if word.isalpha() and word.lower() not in stop_words]

# 词干还原
lemmatized_tokens = [lemmatizer.lemmatize(token) for token in filtered_tokens]

# 计算词频
counter = Counter(lemmatized_tokens)
for word, count in counter.items():
    print(f"{word}: {count}")

输出结果如下:

quick: 1
brown: 1
fox: 2
jump: 1
lazy: 1
dog: 2
bark: 1
解释说明

首先,我们加载了需要用到的库和数据包,并指定了待处理的文本。接下来,我们使用nltk库中的word_tokenize函数将文本分词,并使用isalpha()函数和stopwords包中的停用词列表,过滤掉数字、符号和停用词。然后,我们使用WordNetLemmatizer函数对词干进行还原,并使用collections库中的Counter函数计算每个词的词频。最后,我们输出计算结果。

总结

在本文中,我们介绍了如何使用Python计算去除停用词和词干后的词频。通过使用nltk库和对应的数据包,我们可以轻松地实现文本处理中的基本功能。