2017-07-27 4 views
1

Je voudrais tester si un ensemble de documents a une similarité particulière, en regardant un graphique construit avec la représentation vectorielle de chacun, montré avec un ensemble de données de texte d'autres documents. Je suppose qu'ils seront ensemble dans une visualisation.Clustering et Visualisation de documents

La solution est d'utiliser doc2vec pour calculer le vecteur pour chaque document et le tracer? Peut-il être fait de manière non supervisée? Quelle bibliothèque python devrais-je utiliser pour obtenir ces belles représentations 2D et 3D de Word2vec?

Répondre

0

Vous ne savez pas exactement ce que vous demandez, mais si vous voulez vérifier si les vecteurs sont du même type, vous pouvez utiliser K-Means. K-Means fait un nombre K de cluster d'une liste de vecteurs, donc si vous choisissez un bon K (pas trop bas donc il cherchera quelque chose mais pas trop haut donc ça ne sera pas trop discriminant) ça pourrait marcher.

K-Means fonctionnent grossièrement cette façon:

init_center(K) # randomly set K vector that will be the center of your cluster 

while not converge(): # This one is tricky as you can find a lot of way to check for the convergence, the easiest is to check if your center has moved since the last itteration 

    associate_vector() # Here you associate all the vectors to the closest center 

    re_calculate_center() # And now you put the center at the... well center of their point, you can do that just by doing the mean of all the vector of the cluster. 

Ce gif est probablement plus clair que moi: Gif K-mean

Et cet article (où ce gif est de) est vraiment plus clair que moi, même s'il parle pour Java ici: https://picoledelimao.github.io/blog/2016/03/12/multithreaded-k-means-in-java/