我的来源基于什么对数据进行矢量化和聚类?
On what basis my source is vectorizing & clustering data?
我正在从想要构建语义词汇表的文本中获取输入,但是如果没有词汇表,我只是传递一个单词标记列表。但是我无法弄清楚未设置词汇表时矢量化和聚类的基础是什么?在文档中提到 "If not given, a vocabulary is determined from the input documents." 但是,我只使用一个 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()
这里的词汇表是单词到冷词的映射。
如果您不预定义词汇表(在处理 多个 源以获得相同的列时这是必需的)它会简单地通过在看到新词时添加新列来构建.
我正在从想要构建语义词汇表的文本中获取输入,但是如果没有词汇表,我只是传递一个单词标记列表。但是我无法弄清楚未设置词汇表时矢量化和聚类的基础是什么?在文档中提到 "If not given, a vocabulary is determined from the input documents." 但是,我只使用一个 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()
这里的词汇表是单词到冷词的映射。
如果您不预定义词汇表(在处理 多个 源以获得相同的列时这是必需的)它会简单地通过在看到新词时添加新列来构建.