从自然语言数据加载,去除停用词,Tfidf提取文本征向量的 python 代码。代码要清 晰易读,要有适当的注释。
时间: 2024-03-01 19:49:57 浏览: 94
以下是从自然语言数据加载,去除停用词,Tfidf提取文本征向量的Python代码,希望可以对你有所帮助:
```python
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 = ['This is the first document.', 'This is the second document.', 'And this is the third one.']
# 去除特殊字符和数字等无关词汇
data = [re.sub('[^a-zA-Z]', ' ', sentence) for sentence in data]
# 分词并去除停用词
stop_words = set(stopwords.words('english'))
data = [' '.join([word.lower() for word in sentence.split() if word.lower() not in stop_words]) for sentence in data]
# 词形还原
lemmatizer = WordNetLemmatizer()
data = [' '.join([lemmatizer.lemmatize(word) for word in sentence.split()]) for sentence in data]
# 计算词频
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(data)
# 计算TF-IDF
transformer = TfidfTransformer()
tfidf = transformer.fit_transform(X)
# 提取文本特征向量
features = np.array(tfidf.todense())
```
以上代码中,我们首先加载自然语言数据。然后,使用正则表达式去除其中的特殊字符和数字等无关词汇。接下来,使用 NLTK 库中的停用词集合去除停用词。然后,使用 WordNetLemmatizer 进行词形还原,将每个单词还原为它的原型。然后,使用 CountVectorizer 计算每个单词在文本中出现的次数,并使用 TfidfTransformer 计算每个单词在文本中的 TF-IDF 值。最后,我们将每个文本的特征向量提取出来,存储在 features 数组中。
阅读全文