2017-04-21 1 views
0

J'essaye de créer une application qui calcule la similarité entre 2 chaînes. Les chaînes ne sont pas longues. 3 phrases longues au maximum. J'ai fait des recherches et j'ai trouvé des solutions possibles.Similitude de chaîne TF-IDF Sac de mots ou Word2vec

sac première utilisation de mots: compter les mots et comparer les 2 vecteurs produits (similarité cosinus)

La seconde utilisation TF-IDF et comparer les vecteurs produits.

La troisième est l'utilisation de word2vec et de comparer des vecteurs.

Maintenant pour les questions.

Performance sage est performance word2vec mieux que TF-IDF pour les phrases courtes?

Quelle est la meilleure façon de former le modèle word2vec? Dois-je utiliser une grande quantité de texte (vidage wikipedia par exemple) ou l'entraîner en utilisant uniquement les phrases qui sont comparées.

Comment obtenir une similarité de phrases de word2vec. devrais-je faire la moyenne des mots dans chaque phrase ou y a-t-il une meilleure solution?

+0

Plusieurs choses ici. Ce n'est pas une question de programmation donc vous ne devriez pas le demander ici, il sera marqué comme hors sujet. Je ne connais pas la comparaison des performances. Mais en ce qui concerne word2vec, vous pouvez l'utiliser comme une matrice d'intégration pour vos mots, puis avoir un réseau récurrent produire une représentation de la phrase. Cela peut dépasser votre problème, mais ces modèles sont conçus pour créer une représentation des séquences, comme vous le souhaitez. Cependant, vous auriez besoin d'un train pour apprendre la représentation. Sinon, peut-être pouvez-vous entraîner ce modèle de manière non supervisée? – ted

+0

Je ne suis pas bon avec les réseaux de neurones pourriez-vous s'il vous plaît fournir un lien vers un exemple d'utilisation de word2vec et un réseau récurrent pour produire une représentation de la phrase. Pour l'ensemble de formation, combien de données devrait-il avoir. Je n'ai pas un grand ensemble de données à utiliser pour le moment. Toutes les idées comment le faire d'une manière non supervisée. Merci – LonsomeHell

Répondre

1
  • Avec de bonnes données de train, word2vec doit avoir de meilleures performances. (J'en ai obtenu de bons résultats)

  • Vous devez avoir une grande quantité de données pour un bon modèle. Le meilleur moyen est d'utiliser des données pré-formés si vous travaillez en anglais. Il y a de bons modèles dans this link que vous pouvez utiliser. Le modèle pré-entraîné de Google Actualités fonctionne parfaitement, comme je le sais.

  • Il est courant d'utiliser la moyenne des mots dans une partie du texte comme une phrase. La meilleure façon peut être Moyenne pondérée comme moyenne pondérée tf-idf. De plus il y a une recherche à chaud sur la similitude textuelle sémantique vous pouvez le suivre à partir de son Wiki Page