NLP / Machine Learning comparaison de textes
je suis actuellement en train de développer un programme avec la possibilité de comparer un petit texte (disons 250 caractères) à un recueil de textes similaires (environ 1000-2000 textes).
le but est d'évaluer si le texte A est similaire à un ou plusieurs textes de la collection et si oui, le texte de la collection doit être récupérable par ID. Chaque texte aura un identifiant unique.
Il y a deux façons j'aimerais la sortie:
Option 1: Texte A correspond au texte B Avec 90% de similarité, texte C avec 70% de similarité, et ainsi de suite.
Option 2: Texte Un Texte correspondant D avec la plus grande similarité
j'ai lu quelques machines d'apprentissage à l'école mais je ne suis pas sûr quel algorithme convient le mieux à ce problème ou si je devrais envisager d'utiliser NLP (pas familier avec le sujet).
est-ce que quelqu'un a une suggestion de quel algorithme utiliser ou où je peux trouver la littérature nécessaire pour résoudre mon problème?
Merci pour toute contribution!
2 réponses
Il ne semble pas être un problème d'apprentissage de la machine, vous êtes simplement à la recherche pour certains mesure de similarité du texte. Une fois que vous en sélectionnez un, vous triez simplement vos données en fonction des "scores"atteints.
selon vos textes, vous pouvez utiliser l'une des mesures suivantes (liste du wiki) ou définir votre propre:
- distance de martelage
- Levenshtein et la distance de damerau–Levenshtein
- Needleman-Wunsch la distance ou de la Vendeurs " algorithme
- Smith–Waterman distance
- distance Gotoh ou distance Smith-Waterman-Gotoh
- Monge Elkan distance
- bloc distance ou L1 distance ou Ville bloc distance
- jaro-Winkler distance
- Soundex distance métrique
- une Simple correspondance coefficient (SMC)
- coefficient de Dice
- similarité Jaccard ou coefficient Jaccard ou Tanimoto coefficient
- index Tversky
- coefficient de chevauchement
- distance euclidienne ou distance L2
- cosinus similar
- distance variationnelle
- Hellinger la distance ou de la distance de Bhattacharyya
- Informations rayon (divergence de Jensen–Shannon)
- scew divergence
- Probabilité de Confusion
- Tau métrique, une approximation du Kullback-Leibler divergence
- Fellegi et Sunters metric (SFS)
- Maximal correspond à
- Lee distance
Certains de ce qui précède (comme ie. similarité cosinus) exiger la transformation de vos données en format vectorisé. Ce processus peut également être réalisé de nombreuses façons, avec le plus simple possible sac de mots/techniques tfidf.
Liste elle-même est loin d'être complète, n'est qu'un projet d'une telle méthode. En particulier, il y a beaucoup de noyaux de corde, qui sont également adaptés pour mesurer la similarité du texte. En particulier, Wordnet Kernel peut mesurer la similarité sémantique basée sur l'une des bases de données sémantiques les plus complètes de la langue anglaise.
j'ai trouvé un excellent article pour la mesure de similarité sémantique qui est parfait pour mon problème.
WordNet en fonction de similarité sémantique de mesure
Merci pour tous les commentaires!