python - 我的数据源是在什么基础上进行矢量化和聚类的?

标签 python cluster-analysis feature-extraction tf-idf

我正在从想要构建语义词汇的文本中获取输入,但是如果没有词汇,我只是传递单词的标记列表。但我无法弄清楚当未设置词汇时,矢量化和聚类是在什么基础上发生的?在文档中提到“如果没有给出,则根据输入文档确定词汇表”。不过,我只采用一个 txt 文件作为输入。

我尝试从 wordnet 同义词集中创建词汇,但无法到达任何地方。

import string
import re
import nltk
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.cluster import KMeans
from nltk.corpus import wordnet


src = open('Sample.txt', 'r')
pageData = src.read().splitlines()

# preprocessing
def clean_text(text):
text = "".join([word.lower() for word in text if word not in string.punctuation])
tokenize = re.split("\W+", text)  # tokenizing based on words
return text

filter_data = clean_text(pageData)
# Feature Extraction
Tfidf_vectorizer = TfidfVectorizer(tokenizer=clean_text, analyzer='char', 
use_idf=True, stop_words=stopwords)
Tfidf_matrix = Tfidf_vectorizer.fit_transform(filter_data)  # checking the 
words in filter data to find relevance
terms = Tfidf_vectorizer.get_feature_names()

# Clustering
km = KMeans(n_clusters=5, n_jobs=-1)
labels = km.fit_transform(Tfidf_matrix)
clusters = km.labels_.tolist()
X = Tfidf_matrix.todense()

最佳答案

这里的词汇表是单词到冷词的映射。

如果您没有预定义词汇表(在处理多个源以获得相同的列时这是必需的),则只需在看到新单词时添加新列即可构建词汇表。

关于python - 我的数据源是在什么基础上进行矢量化和聚类的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54355821/

相关文章:

python - 如何在 modbus 寄存器中存储带符号的 16 位值

python - 如何修复 python 3.4 tkinter "Index Error: list index out of range"中的此错误

cluster-analysis - 对推文聚类方法的质疑

json - 机器学习友好的数据组织

image-processing - HoG 特征如何以图形方式表示?

python - 监控流类

python - 单链接聚类

c - 如何检查一个点是否在点簇内

machine-learning - 标准化和全局对比度标准化之间有什么区别? (图像预处理)

python - 创建一个 Python 列表,其中反复填充相同的字符串和一个根据变量增加的数字。