Używam algorytmu Kmeans scikit learn do grupowania komentarzy.W jaki sposób Kmeans wie, jak klastry dokumentów, gdy karmimy je tylko tfidf wektory poszczególnych słów?
sentence_list=['hello how are you', "I am doing great", "my name is abc"]
vectorizer=TfidfVectorizer(min_df=1, max_df=0.9, stop_words='english', decode_error='ignore')
vectorized=vectorizer.fit_transform(sentence_list)
km=KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(vectorized)
po wydrukowaniu wyniku wektoryzacji, daje mi indeks słów i wyników tf-idf indeksu.
Tak się zastanawiam, biorąc pod uwagę, że otrzymujemy tylko tfidf-owe wyniki słów, w jaki sposób udaje nam się grupować dokumenty w oparciu o pojedyncze słowa, a nie wynik całego dokumentu? A może to robi. Czy ktoś może mi wytłumaczyć koncepcję tego problemu?
Nie jesteś pewien, o co pytasz. Proces dzielenia tekstu na słowa jest częścią procesu wektoryzacji/dopasowywania. – BrenBarn
moim ostatecznym celem jest możliwość wykreślenia wykresu 2d z osią y będącą wynikiem tfidf, a oś x może być wektorem liczącym (lub czymś, co ma więcej sensu), a każdy punkt danych jest 1 dokumentem. Więc byłem ciekawy, czy wynik dla każdego zdania jest rzeczywiście obliczany za sceną, tak, że klastry z najbardziej podobnymi wynikami są zgrupowane razem? – jxn