На каком основании мой источник данных векторизации и кластеризации? - PullRequest
0 голосов
/ 25 января 2019

Я беру ввод из текста, который хотел создать семантический словарь, однако без слов я просто передаю список слов. Но я не могу понять, на каком основании происходит векторизация и кластеризация, когда словарь не установлен? В документации упоминается, что «если не дано, словарь определяется из входных документов». Тем не менее, я принимаю только один текстовый файл для моего ввода.

Я пытался создать словарь из набора синонимов 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()

1 Ответ

0 голосов
/ 27 января 2019

Словарь здесь представляет собой сопоставление слов с холодными столбцами.

Если вы не предопределите словарь (который необходим при обработке нескольких источников для получения одинаковых столбцов), он будетпросто создавайте, добавляя новые столбцы, когда видите новые слова.

...