De meilleurs documents textuels que TF / idf et cosine similarity?

j'essaie de regrouper le flux Twitter. Je veux mettre chaque tweet à un cluster qui parlent du même sujet. J'ai essayé de regrouper le flux en utilisant un algorithme de regroupement en ligne avec TF/idf et la similarité de cosinus mais j'ai trouvé que les résultats sont assez mauvais.

les principaux inconvénients de l'utilisation de TF / idf est qu'il regroupe des documents qui sont mot clé similaire, il est donc seulement bon d'identifier les documents presque identiques. Par exemple, considérons la suite phrases:

1-le site Web Stackoverflow est un bel endroit. 2-Stackoverflow est un site web.

les deux phrases de prévoiuse seront probablement groupées avec une valeur seuil raisonnable puisqu'elles partagent beaucoup de mots clés. Mais examinons maintenant les deux phrases suivantes:

1-le site Web Stackoverflow est un bel endroit. 2 - je visite Stackoverflow régulièrement.

Maintenant, en utilisant tf/idf l'algorithme de clustering échouera lamentablement parce qu'ils ne partager un mot-clé même quand ils parlent de la même chose.

ma question: y a-t-il de meilleures techniques pour regrouper les documents?

17
demandé sur Jack Twain 2013-07-09 03:40:57

3 réponses

D'après mon expérience, la similitude cosinus sur analyse sémantique latente (LSA/LSI) les vecteurs fonctionnent beaucoup mieux que le TF-idf brut pour le clustering de texte, bien que j'admette que je ne l'ai pas essayé sur les données Twitter. En particulier, il tend à prendre soin du problème de la rareté que vous rencontrez, où les documents ne contiennent tout simplement pas assez de termes communs.

les modèles de sujet tels que LDA pourraient fonctionner encore mieux.

9
répondu Fred Foo 2013-07-09 08:17:52

Comme mentionné dans d'autres commentaires et réponses. L'utilisation de LDA peut donner de bons poids tweet- > sujet.

si ces poids ne sont pas suffisants pour répondre à vos besoins, vous pouvez envisager de regrouper ces distributions de sujets à l'aide d'un algorithme de regroupement.

pendant qu'il est d'entraînement Lda dépendant pourrait facilement regrouper les tweets avec stackoverflow, stack-overflow et stack overflow dans le même sujet. Cependant "ma pile de boîtes est sur le point de déborder" pourrait plutôt aller dans un autre sujet sur les boîtes.

autre exemple: un tweet avec le mot Pomme pourrait entrer dans un certain nombre de sujets différents (the company, the fruit, New York et d'autres). LDA examinerait les autres mots du tweet pour déterminer les sujets pertinents.

  1. "Steve Jobs était le PDG chez Apple" est clairement au sujet de la société
  2. "je suis le plus manger de délicieux apple" est clairement le fruit
  3. "je vais à la grosse pomme quand je voyage aux états-unis" est très probablement au sujet de visiter New York
6
répondu ilikedata 2013-07-12 04:29:05

réponse:

TfxIdf est actuellement l'une des méthodes de recherche les plus connues. Ce dont vous avez besoin, c'est d'un prétraitement du Langage naturel (NLP). Il y a beaucoup de ressources qui peuvent vous aider pour l'anglais (par exemple le lib 'nltk' en python).

vous devez utiliser l'analyse NLP à la fois sur vos questionnaires (questions) et sur vos documents avant l'indexation.

le point est : tandis que tfxidf (ou tfxidf^2 comme dans lucene) est bon, vous devrait l'utiliser sur une ressource annotée avec des informations méta-linguistiques. Cela peut être difficile et exiger une connaissance approfondie de votre moteur de recherche de base, analyse grammaticale (syntaxe) et le domaine du document.

brève réponse: la meilleure technique est D'utiliser TFxIDF avec des annotations de grammaire légère NLP, et à la fois réécrire la requête et l'indexation.

2
répondu Galigator 2016-07-14 07:10:14