使用Python在csv文件中去除停用词、用到函数CountVectorizer 和 TfidfTransformer()构建文本的 TF-IDF 矩阵
时间: 2024-03-25 12:41:51 浏览: 62
Kaggle-SMS-Spam-Collection-Dataset-:使用NLTK和Scikit-learn分类为垃圾邮件或火腿邮件
好的,以下是一个示例代码,演示如何在Python中从CSV文件中读取文本数据,去除停用词,并使用CountVectorizer和TfidfTransformer函数构建文本的TF-IDF矩阵:
```python
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
from nltk.corpus import stopwords
# 从CSV文件中读取文本数据
df = pd.read_csv('text_data.csv')
# 去除停用词
stop_words = set(stopwords.words('english'))
# 构建 CountVectorizer 对象
vectorizer = CountVectorizer(stop_words=stop_words)
# 对文本进行特征提取
X = vectorizer.fit_transform(df['text'].values.astype('U'))
# 构建 TfidfTransformer 对象并进行特征转换
transformer = TfidfTransformer()
tfidf = transformer.fit_transform(X)
# 输出 TF-IDF 矩阵
print(tfidf.toarray())
```
在上面的代码中,我们使用了Pandas库中的read_csv函数从CSV文件中读取了文本数据。然后,我们使用NLTK库中的停用词列表去除了文本中的停用词。接着,我们使用CountVectorizer函数对文本进行特征提取,得到了文本的词频矩阵。最后,我们使用TfidfTransformer函数对词频矩阵进行特征转换,得到了TF-IDF矩阵,并输出了TF-IDF矩阵的数组形式。
请注意,上面的代码中使用了`astype('U')`将文本数据转换为Unicode字符串类型,以确保能够正确地进行特征提取和转换。
阅读全文