从数据加载,去除停用词,Tfidf提取文本征向量的 python 代码。代码要清 晰易读,要有适当的注释。
时间: 2024-03-01 14:49:55 浏览: 49
基于python 编写的 基于tfidf的关键字提取算法。
以下是从数据加载,去除停用词,Tfidf提取文本征向量的Python代码,希望可以对你有所帮助:
```python
import pandas as pd
import numpy as np
import re
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
# 加载数据
data = pd.read_csv('data.csv')
# 去除特殊字符和数字等无关词汇
data['text'] = data['text'].apply(lambda x: re.sub('[^a-zA-Z]', ' ', x))
# 分词并去除停用词
stop_words = set(stopwords.words('english'))
data['text'] = data['text'].apply(lambda x: ' '.join([word.lower() for word in x.split() if word.lower() not in stop_words]))
# 词形还原
lemmatizer = WordNetLemmatizer()
data['text'] = data['text'].apply(lambda x: ' '.join([lemmatizer.lemmatize(word) for word in x.split()]))
# 计算词频
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(data['text'])
# 计算TF-IDF
transformer = TfidfTransformer()
tfidf = transformer.fit_transform(X)
# 提取文本特征向量
features = np.array(tfidf.todense())
```
以上代码中,我们首先使用 Pandas 库加载数据,并去除其中的特殊字符和数字等无关词汇。然后,使用 NLTK 库中的停用词集合去除停用词。接下来,我们使用 WordNetLemmatizer 进行词形还原,将每个单词还原为它的原型。然后,使用 CountVectorizer 计算每个单词在文本中出现的次数,并使用 TfidfTransformer 计算每个单词在文本中的 TF-IDF 值。最后,我们将每个文本的特征向量提取出来,存储在 features 数组中。
阅读全文