Comment puis-je extraire une pile de texte pour obtenir des mots clés par utilisation? ("Jacob Smith" ou "clôture")
Et existe-t-il déjà un logiciel pour le faire? même semi-automatiquement, et s'il peut filtrer des mots simples comme "le", "et", "ou", alors je pourrais accéder aux sujets plus rapidement.
Il s'agit d'une question ouverte en PNL, il n'y a donc pas de réponse simple.
Ma recommandation pour des "travaux pour moi" rapides et sales est topia.termextract .
Yahoo a un service d'extraction de mots clés ( http://developer.yahoo.com/search/content/V1/termExtraction.html ) qui est à faible rappel mais à haute précision. En d'autres termes, il vous donne un petit nombre de termes de haute qualité, mais il manque de nombreux termes dans vos documents.
En Python, il y a topia.termextract ( http://pypi.python.org/pypi/topia.termextract/ ). Il est relativement bruyant, et propose de nombreux faux mots-clés, mais il est simple à utiliser.
Termine ( http://www.nactem.ac.uk/software/termine/ ) est un service Web britannique qui est également relativement bruyant et propose de nombreux faux mots-clés. Cependant, il me semble être légèrement plus précis que topia.termextract. YMMV.
Une façon de débruiter les résultats avec trop de mots clés (par exemple topia.termextract et termine) est de créer un vocabulaire de termes qui apparaissent fréquemment, puis de supprimer les termes proposés qui ne figurent pas dans le vocabulaire. En d'autres termes, faites deux passes sur votre corpus: La première passe, comptez la fréquence de chaque mot-clé. Dans la deuxième passe, jetez les mots-clés qui sont trop rares.
Si vous voulez écrire le vôtre, la meilleure introduction est peut-être écrite par Park, qui est maintenant chez IBM:
Voici quelques références supplémentaires, si vous souhaitez en savoir plus:
Il existe également un service appelé Alchemy qui peut effectuer l'extraction de termes, le balisage de concepts, l'analyse des sentiments, etc.
Il est valide, je l'ai testé mais je ne connais pas les politiques commerciales (le cas échéant). Ils fournissent des API pour tout type de langage (à peu près).
J'ai lu quelque part (désolé, je ne me souviens plus où) que la sortie donnée par Alchemy est moins bruyante que celles proposées par Joseph.
Vous n'avez pas spécifié de technologie avec laquelle vous travaillez, donc je suppose qu'un script Shell est également une possibilité.
J'ai toujours été impressionné par l'exemple d'analyse de fréquence Word dans le Advanced Bash-Scripting Guide (12-11)
Par exemple, ce qui suit extrait un livre du projet Gutenburg et écrit un "rapport" d'analyse de fréquence Word:
wget http://www.gutenberg.org/files/20417/20417-8.txt -q -O- |
sed -e 's/\.//g' -e 's/\,//g' -e 's/ /\
/g' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr > output.txt
Doit être extensible pour exclure des mots d'une liste `` commune '' (le, et, a ...) etc.
Je recommande personnellement Maui ( http://code.google.com/p/maui-indexer/ ): il s'appuie sur KeA mais l'étend de diverses manières. Il peut être formé et peut utiliser des terminologies formatées RDF.
J'ai utilisé NTLK pour reconnaître les entités nommées avant avec un certain succès. Il est particulièrement bon pour reconnaître les noms des personnes et des organisations.