Я исправлен следующий код из примеров, которые я нашел через Интернет:doc2vec Как группируются DocvecsArray
# gensim modules
from gensim import utils
from gensim.models.doc2vec import LabeledSentence
from gensim.models import Doc2Vec
from sklearn.cluster import KMeans
# random
from random import shuffle
# classifier
class LabeledLineSentence(object):
def __init__(self, sources):
self.sources = sources
flipped = {}
# make sure that keys are unique
for key, value in sources.items():
if value not in flipped:
flipped[value] = [key]
else:
raise Exception('Non-unique prefix encountered')
def __iter__(self):
for source, prefix in self.sources.items():
with utils.smart_open(source) as fin:
for item_no, line in enumerate(fin):
yield LabeledSentence(utils.to_unicode(line).split(), [prefix + '_%s' % item_no])
def to_array(self):
self.sentences = []
for source, prefix in self.sources.items():
with utils.smart_open(source) as fin:
for item_no, line in enumerate(fin):
self.sentences.append(LabeledSentence(utils.to_unicode(line).split(), [prefix + '_%s' % item_no]))
return self.sentences
def sentences_perm(self):
shuffle(self.sentences)
return self.sentences
sources = {'test.txt' : 'DOCS'}
sentences = LabeledLineSentence(sources)
model = Doc2Vec(min_count=1, window=10, size=100, sample=1e-4, negative=5, workers=8)
model.build_vocab(sentences.to_array())
for epoch in range(10):
model.train(sentences.sentences_perm())
print(model.docvecs)
мой файл test.txt содержит пункт в каждой строке.
код прекрасно работает и генерирует DocvecsArray для каждой строки текста
моя цель состоит в том, чтобы иметь выход, как так:
кластера 1: [DOC_5, DOC_100, ... DOC_N]
кластера 2: [DOC_0, DOC_1 ... DOC_N]
Я нашел following Answer, но вывод:
кластер 1: [слово, слово ... слово]
кластер 2: [слово, слово ... слово]
Как я могу изменить код и получить кластеры документов?
классный, я посмотрю .. Вы внедрили кластеризацию документов? –
Нет, но я работал с классификацией документов. В общем, все сложнее, чем меньше текст. Начиная, вы можете захотеть сохранить его в больших текстах. –
http://hdbscan.readthedocs.io/en/latest/comparing_clustering_algorithms.html выглядит действительно интересно –