python进行tf-idf计算时停用词如何设置
时间: 2024-05-07 19:17:40 浏览: 95
去停用词_利用python去停用词_
5星 · 资源好评率100%
在Python中,可以使用nltk或sklearn库来进行tf-idf计算。停用词可以通过在nltk库中使用StopWordsCorpusReader或在sklearn库中使用stop_words参数来设置。具体方法如下:
使用nltk库:
```python
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer
from nltk.stem import WordNetLemmatizer
stop_words = set(stopwords.words('english')) # 设置英文停用词
# 去除停用词、词干提取和词形还原
def preprocess(text):
tokens = word_tokenize(text.lower())
tokens = [PorterStemmer().stem(token) for token in tokens if token.isalpha()]
tokens = [WordNetLemmatizer().lemmatize(token) for token in tokens]
tokens = [token for token in tokens if token not in stop_words]
return tokens
# 对文本进行预处理
text = 'This is an example sentence for stop words removal.'
tokens = preprocess(text)
print(tokens)
```
使用sklearn库:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.datasets import fetch_20newsgroups
stop_words = 'english' # 设置英文停用词
# 对文本进行tf-idf计算
vectorizer = TfidfVectorizer(stop_words=stop_words)
newsgroups = fetch_20newsgroups(subset='train')
X = vectorizer.fit_transform(newsgroups.data)
print(X.shape)
```
在以上示例代码中,我们通过设置stop_words参数来设置停用词。在nltk库中,我们可以使用set(stopwords.words('english'))来获取英文停用词集合;在sklearn库中,我们可以直接将stop_words参数设置为'english',表示使用内置的英文停用词表。
阅读全文