tag génération à partir d'un texte de contenu
Je suis curieux de savoir si il existe un algorithme/méthode existe pour générer des mots clés/tags à partir d'un texte donné, en utilisant des calculs de poids, l'apparition ratio ou d'autres outils.
En outre, je vous serai reconnaissant si vous pointez tout basé sur Python solution /bibliothèque pour cela.
Grâce
Vous devez vous connecter pour publier un commentaire.
Une façon de le faire serait d'extraire des mots qui se produisent plus fréquemment dans un document que vous attendez d'eux par hasard. Par exemple, dire que dans un plus vaste collection de documents, le terme 'Markov' est presque du jamais vu. Cependant, dans un document de la même collection de Markov apparaît très fréquemment. Cela suggère que Markov pourrait être un bon mot-clé ou une étiquette à associer au document.
À identifier des mots-clés comme cela, vous pouvez utiliser le point-sage de l'information mutuelle du mot-clé et le document. Ceci est donné par
PMI(term, doc) = log [ P(term, doc) /(P(term)*P(doc)) ]
. Ce sera à peu près de vous dire comment beaucoup moins (ou plus) qui vous a surpris à venir à travers ce terme dans le document spécifique comme apposer à venir à travers dans l'importante collection.D'identifier les 5 meilleurs mots clés à associer à un document, vous venez de trier les termes par leur PMI score avec le document et choisissez le 5 avec le score le plus élevé.
Si vous voulez extraire la groupe de mots de balises, voir la StackOverflow question Comment faire pour extraire des communes ou des phrases significatives à partir d'une série d'entrées de texte.
Emprunt de ma réponse à cette question, le NLTK collocations comment traite de la façon de faire
extrait intéressant groupe de mots expressions à l'aide des n-grammes de PMI dans près de 7 lignes de code, par exemple:
Tout d'abord, la clé de la bibliothèque python for computational linguistics est NLTK ("Langage Naturel Toolkit"). C'est un stable, mature bibliothèque créées et entretenues par des professionnels de linguistes informaticiens. Il dispose également d'un vaste collection de tutoriels, Faq, etc. Je le recommande fortement.
Ci-dessous est un modèle simple, dans le code python, pour le problème évoqué dans votre Question, même si c'est un modèle qu'il s'exécute--fournir tout le texte comme une chaîne de caractères (comme je l'ai fait) et il sera de retour une liste de fréquence des mots ainsi que d'une liste de classement de ces mots dans l'ordre de "l'importance" (ou l'adéquation des mots-clés) selon l'une très simple heuristique.
Mots-clés pour un document donné sont (évidemment), choisis parmi les mots importants d'un document, c'est à dire, ces mots qui sont susceptibles de le distinguer d'un autre document. Si vous n'avez pas eu un priori connaissance du texte de l'objet, une technique courante consiste à déduire l'importance ou le poids d'un mot/terme à partir de sa fréquence, ou l'importance = 1/fréquence.
http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation essaye de représenter chaque document dans une formation corpus que le mélange des sujets, qui sont des distributions de cartographie termes de probabilités.
J'avais utilisé une fois pour disséquer un corpus de critiques de produits dans les idées latentes qui ont parlé à travers tous les documents tels que le service à la clientèle', 'convivialité du produit", etc.. Le modèle de base n'est pas en faveur d'un moyen de convertir la rubrique modèles en un seul mot décrivant ce qu'un sujet est sur.. mais des gens sont venus avec tous les types d'heuristiques pour le faire qu'une fois que leur modèle est formé.
Je vous recommande d'essayer de jouer avec http://mallet.cs.umass.edu/ et de voir si ce modèle s'adapte à vos besoins..
LDA est complètement sans surveillance algorithme de sens, il ne nécessite pas de main d'annoter tout ce qui est grand, mais sur le revers de la médaille, pourrait ne pas vous offrir les sujets que vous attendiez pour donner.
Une solution très simple à ce problème serait:
Je suis sûr qu'il ya plus intelligents, les stats des solutions basées sur si.
Si vous avez besoin d'une solution pour l'utiliser dans un projet plus vaste, plutôt que pour des intérêts souci, Yahoo PATRON est un terme clé méthode d'extraction.