Ich habe auf latente semantische Analyse arbeiten (lsa) und dieses Beispiel angewandt: https://radimrehurek.com/gensim/tut2.htmlWie Dokumente unter Themen clustern latent semantische Analyse unter Verwendung von (lsa)
Es enthält die Begriffe Clustering unter Themen aber nicht finden konnte alles, wie wir Dokumente unter Themen bündeln können.
In diesem Beispiel heißt es, dass "Es scheint, dass nach LSI" Bäume "," Graph "und" Minderjährige "sind alle verwandte Wörter (und tragen am meisten zur Richtung des ersten Themas), während die Das zweite Thema beschäftigt sich praktisch mit allen anderen Wörtern. Wie erwartet, hängen die ersten fünf Dokumente stärker mit dem zweiten Thema zusammen, während die verbleibenden vier Dokumente mit dem ersten Thema in Zusammenhang stehen.
Wie können wir diese fünf Dokumente mit Python-Code zum verwandten Thema in Beziehung setzen?
Sie können meinen Python-Code unten finden. Ich würde jede Hilfe schätzen.
from numpy import asarray
from gensim import corpora, models, similarities
#https://radimrehurek.com/gensim/tut2.html
documents = ["Human machine interface for lab abc computer applications",
"A survey of user opinion of computer system response time",
"The EPS user interface management system",
"System and human system engineering testing of EPS",
"Relation of user perceived response time to error measurement",
"The generation of random binary unordered trees",
"The intersection graph of paths in trees",
"Graph minors IV Widths of trees and well quasi ordering",
"Graph minors A survey"]
# remove common words and tokenize
stoplist = set('for a of the and to in'.split())
texts = [[word for word in document.lower().split() if word not in stoplist]
for document in documents]
# remove words that appear only once
all_tokens = sum(texts, [])
tokens_once = set(word for word in set(all_tokens) if all_tokens.count(word) == 1)
texts = [[word for word in text if word not in tokens_once] for text in texts]
dictionary = corpora.Dictionary(texts)
corp = [dictionary.doc2bow(text) for text in texts]
tfidf = models.TfidfModel(corp) # step 1 -- initialize a model
corpus_tfidf = tfidf[corp]
# extract 400 LSI topics; use the default one-pass algorithm
lsi = models.lsimodel.LsiModel(corpus=corp, id2word=dictionary, num_topics=2)
corpus_lsi = lsi[corpus_tfidf]
#for i in range(0, lsi.num_topics-1):
for i in range(0, 3):
print lsi.print_topics(i)
for doc in corpus_lsi: # both bow->tfidf and tfidf->lsi transformations are actually executed here, on the fly
print(doc)