📅  最后修改于: 2023-12-03 15:34:09.277000             🧑  作者: Mango
在文本处理中,去除停用词和词干还原是必不可少的。停用词是指在文本中出现频率较高,但不具备实际意义的词汇,例如介词、连词等。词干还原则是将单词还原成其原始形式,例如将“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库和对应的数据包,我们可以轻松地实现文本处理中的基本功能。