Текстовая маркировка: Что такое контекстуальные ярлыки центроидов, как их использовать в python? - PullRequest
0 голосов
/ 13 мая 2019

Здесь я имею дело с данными о тикете, где описание представляет собой столбец, который содержит сводку о тикете или инциденте. Моя задача - создать метки двух уровней для каждого тикета, инцидента или документа на основе соответствующего краткого описания.

Я попробовал кластеризацию с помощью k-средних и пометил каждый документ, используя метод центроида и триграмму, но это неправильная маркировка для тех документов, которые находятся за пределами центроида. Я также попробовал LDA, но мне сложно определить кластер, если данные формируют более 10 кластеров. Сейчас я пробую контекстные метки центроидов, но, поскольку я новичок в python, пожалуйста, помогите, как реализовать в python. Пожалуйста, дайте мне знать, если есть другое решение для этого.

vectorizer = TfidfVectorizer(stop_words='english', ngram_range=(3,3))
X = vectorizer.fit_transform(summary['Description'])

true_k = 20
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, 
n_init=1)
model.fit(X)
clustering = model.labels_
print (clustering)

words=[]
print("Top terms per cluster:")
order_centroids = model.cluster_centers_.argsort()[:, ::-1]
terms = vectorizer.get_feature_names()
for i in range(true_k):
   print ("Cluster %d:" % i),
    for ind in order_centroids[i, :1]:
      print (' %s' % terms[ind]),
      words.append(' %s' % terms[ind])

Я хочу, чтобы вывод был таким

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...