考虑词频的向量空间模型代码
时间: 2024-09-26 16:14:13 浏览: 59
向量空间模型(Vector Space Model, VSM)是一种信息检索和文本挖掘中常用的技术,它将文本表示为一系列词项的集合,并通过词频、逆文档频率等统计特征转换成数值向量。以下是一个简单的Python代码示例,使用NLTK库实现基于TF-IDF的VSM:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
import nltk
nltk.download('stopwords') # 下载停用词列表
# 示例文本数据
texts = ['这是一个句子', '这是另一个句子', '相同的词语在两个句子里']
# 预处理步骤(分词、去除停用词)
stop_words = set(nltk.corpus.stopwords.words('chinese')) # 使用中文停用词
stemmer = nltk.stem.SnowballStemmer('zh') # 初始化中文词干提取器
def preprocess(text):
words = nltk.word_tokenize(text)
filtered_words = [stemmer.stem(word) for word in words if word not in stop_words]
return ' '.join(filtered_words)
preprocessed_texts = [preprocess(text) for text in texts]
# 创建TF-IDF向量izer
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(preprocessed_texts)
# 现在vectors是一个scipy.sparse矩阵,每个行对应一个文档,列对应词汇表中的词项
```
在这个例子中,`fit_transform()`会计算词频并应用TF-IDF权重,得到每篇文档的向量表示。
阅读全文