2009-05-28 14 views
3

J'ai besoin d'inspiration. Pour un projet de passe-temps, je joue avec l'analyse de contenu. Essentiellement, j'essaie d'analyser les entrées pour les faire correspondre à une carte thématique.Quels outils utilisez-vous pour analyser du texte?

Par exemple:

  • "La façon dont l'Irak"> Histoire, Moyen-Orient
  • "Halloumni"> Nourriture, Moyen-Orient
  • "BMW"> Allemagne, Voitures
  • « Obama "> États-Unis
  • "Impala"> États-Unis, Voitures
  • "Le mur de Berlin"> Histoire, Allemagne
  • " Bratwu première »> Nourriture, Allemagne
  • « Cheeseburger »> Nourriture, États-Unis
  • ...

J'ai lu beaucoup de choses sur la taxonomie et à la fin, tout ce que je lis conclut que toutes les personnes tag différemment et donc le système est voué à l'échec. Je pensais à des listes de mots d'entrée et de mots de passe, mais il y a bien sûr beaucoup de travail à faire et à construire. Construire les liens pertinents entre les mots et les sujets semble épuisant et aussi sans fin parce que, quel que soit le langage avec lequel vous traitez, il est très riche et la plupart des langues dépendent aussi fortement du contexte. Laissez seul le maintenir.

Je suppose que je dois trouver intelligent et l'entraîner avec des sujets que je veux qu'il soit en mesure de deviner. Un peu comme un Eliza bot.

De toute façon, je ne crois pas qu'il y ait quelque chose qui sorte de la boîte, mais quelqu'un a des pistes ou des exemples de technologie à utiliser pour analyser les entrées afin d'extraire signifiant?

Répondre

2

Hiya. Je voudrais d'abord regarder OpenCalais pour trouver des entités dans les textes ou les entrées. C'est génial, et je m'en suis beaucoup servi moi-même (des gars de Reuters). Ensuite, vous pouvez analyser le texte plus avant, en créant des associations entre les entités et les mots. Je les rechercherais probablement dans quelque chose comme WordNet et j'essaierais de les typer, ou même de générer automatiquement une ontologie correspondant au domaine que vous essayez de mapper. En ce qui concerne la façon de tout rassembler, il y a beaucoup de choses que vous pouvez faire; ce qui précède, ou des modèles à deux ou trois passes pour essayer de comprendre ce que sont et signifient les mots. Ou, si vous contrôlez l'entrée, créez un format plus facile à analyser, ou descendez le murky path of NLP (ce qui est très amusant).

Ou vous pouvez chercher quelque chose comme Jena pour analyser des extraits RDF arbitraires, bien que je n'aime pas le site RDF moi-même (je suis un mappeur de sujet).J'ai écrit des choses qui recherchent des mots ou des phrases ou des noms dans WikiPedia, et évaluons leur hitrate basé sur la sémantique trouvée dans les pages WikiPedia (je pourrais vous dire plus de détails si demandé, mais n'est-ce pas plus amusant? sortir toi-même et trouver quelque chose de mieux que le mien? :), ie. nombre de liens, nombre de SeeAlso, quantité de texte, taille de la page de discussion, etc.

J'ai écrit des tonnes de choses au cours des années (même en PHP et en Perl; regardez Robert Barta's Topic Maps stuff on CPAN, en particulier les modules TM pour des trucs de kick-ass), des moteurs aux analyseurs en passant par quelque chose de bizarre au milieu. Tableaux associatifs qui séparent les mots et les phrases, créant des histogrammes cumulatifs pour trier leurs composants, etc. C'est amusant, mais pour ce qui est des outils emballés sous film rétractable, je n'en suis pas si sûr. Les objectifs et les besoins de chacun semblent être différents. Cela dépend de la complexité et de la sophistication que vous voulez atteindre.

En tout cas, espérons que cela aide un peu. À votre santé! :)

+0

Je crois que j'ai essayé de m'inscrire plusieurs fois. Ils me doivent encore un mot de passe. Mais je suppose que je vais essayer à nouveau et vous laisser savoir comment cela se passe. Merci beaucoup! – Till

+0

Je sais que cela a pris du temps à accepter - nous avons utilisé beaucoup d'OpenCalais jusqu'ici. Merci encore pour toutes les suggestions. :) – Till

0

On dirait que vous cherchez une implémentation Bayesian Network. Vous pouvez obtenir en utilisant quelque chose comme Solr.

Consultez également CI-Bayes. Joseph Ottinger a écrit an article à ce sujet sur theserverside.net plus tôt cette année.

+0

Pouvez-vous indiquer une documentation sur Solr qui met en évidence cette fonctionnalité? Je n'ai rien trouvé en cherchant dans leur documentation. – Till

+0

Solr est vraiment un serveur de recherche d'entreprise (un peu similaire à Google Search Appliance), mais ce que vous décrivez m'a semblé être une fonctionnalité de recherche à facettes. Pour plus d'informations, consultez: http://people.apache.org/~hossman/apachecon2006us/faceted-searching-with-solr.pdf – cwash

2

SemanticHacker fait exactement ce que vous voulez, prêt-à-l'emploi, et possède une API conviviale. C'est un peu inexact sur les phrases courtes, mais parfait pour les longs textes.

  • « la voie de l'Irak »> Société/Questions/guerre et les conflits/conflits spécifiques
  • « Halloumni »> N/A
  • « BMW »> Loisirs/Motos/Marques et Modèles
  • « Obama »> Société/Politique/conservatisme
  • « Impala »> Loisirs/Autos/Marques et modèles/Chevrolet
  • « Le mur de Berlin »> régional/Europe/Allemagne/Etats
  • "Bratwurst"> Accueil/Cuisiner/Viande
  • "Cheeseburger"> Accueil/Cuisiner/Recettes Collections; Régionale/Amérique du Nord/États-Unis/Maryland/Villes
+0

Cela semble le plus prometteur de toutes les suggestions ici et de mes propres recherches. Merci beaucoup, je vous tiendrai au courant. – Till