44 votes

Extraction / reconnaissance d'entités avec des outils gratuits lors de l'alimentation de Lucene Index

Je suis actuel enquêter sur les options pour extraire des noms de personne, les lieux, les tech des mots et des catégories de texte (beaucoup d'articles sur le web) qui seront ensuite alimentés en Lucene/index ElasticSearch. Les informations complémentaires sont alors ajoutées sous forme de métadonnées et devrait augmenter la précision de la recherche.

E. g. quand quelqu'un les requêtes 'guichet' il devrait être en mesure de décider s'il veut le cricket, le sport ou le projet Apache. J'ai essayé d'appliquer cela sur mon propre avec succès mineur jusqu'à présent. Maintenant, j'ai trouvé beaucoup d'outils, mais je ne sais pas si ils sont adaptés à cette tâche et qui s'intègre bien avec Lucene ou si la précision de l'extraction d'entités est assez élevé.

Mes questions:

  • Avez-vous des expériences avec certains des outils énumérés et sa précision? Ou si il y a des données de formation requis+disponible.
  • Sont il des articles ou des tutoriels où je peux commencer avec extraction d'entités pour chaque outil?
  • Comment peuvent-ils être intégrés avec Lucene?

Voici quelques questions liées à ce sujet:

17voto

John Lehmann Points 1659

Le problème auquel vous êtes confronté dans le 'guichet' exemple est appelé entité de désambiguïsation, pas d'extraction d'entités/reconnaissance (TNS). Le TNS peut être utile, mais seulement lorsque les catégories sont assez spécifiques. La plupart des TNS systèmes n'ont pas assez de granularité de distinguer entre un sport et un projet de logiciel (les deux types tombent à l'extérieur de la généralement reconnu types: personne, org, de l'emplacement).

Pour la désambiguïsation, vous avez besoin d'une base de connaissances contre les entités qui sont en train d'être analysées. DBpedia est un choix typique en raison de sa large couverture. Voir ma réponse pour Comment utiliser DBPedia pour extraire Tags/mots-clés à partir du contenu? où je fournir plus d'explication, et mentionne plusieurs outils pour la désambiguïsation, y compris:

Ces outils utilisent souvent un langage indépendant de l'API comme le RESTE, et je ne sais pas qui ils fournir directement Lucene soutien, mais j'espère que ma réponse a été bénéfique pour le problème que vous essayez de résoudre.

2voto

Abul Fayes Points 1

Vous pouvez utiliser OpenNLP pour extraire les noms de lieux, de personnes, d'organisations sans formation. Il vous suffit d'utiliser le pré-existants modèles qui peut être téléchargé à partir d'ici: http://opennlp.sourceforge.net/models-1.5/

Pour un exemple sur la façon d'utiliser l'un de ces modèle, voir: http://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html#tools.namefind

0voto

mike Points 21

Rosoka est un produit commercial qui fournit un calcul de "Saillance", qui mesure l'importance de l'expression ou de l'entité pour le document. La saillance est basée sur l'usage linguistique et non pas la fréquence. À l'aide de l'importance des valeurs, vous pouvez déterminer le sujet principal de l'ensemble du document. La sortie est dans votre choix de format XML ou JSON qui le rend très facile à utiliser avec Lucene. Il est écrit en java. Il y a un Nuage d'Amazon version disponible au https://aws.amazon.com/marketplace/pp/B00E6FGJZ0. Le coût de l'essayer est de 0,99 $/heure. Le Rosoka Cloud version ne dispose pas de toutes les fonctionnalités de l'API Java disponible à ce que la pleine Rosoka n'. Oui les deux versions effectuer entité et la durée de désambiguïsation basée sur l'usage linguistique.

La désambiguïsation, qu'elle soit humaine ou d'un logiciel nécessite qu'il y ait suffisamment d'informations contextuelles pour être en mesure de déterminer la différence. Le contexte peut être contenues dans le document, à l'intérieur d'un corpus de contrainte, ou dans le contexte de l'utilisateur. Le premier étant plus précis, et, plus tard, ayant le plus grand potentiel d'ambiguïté. I. e. en tapant le mot-clé "de guichet" dans une recherche Google, pourrait faire référence à de cricket, logiciel Apache ou le Star Wars Ewok personnage (c'est à dire une Entité). Le général de La phrase "Le guichet est gardé par le batteur" a des indices contextuels au sein de la phrase à l'interpréter comme un objet. "Guichet Wystri Warrick était un homme Ewok scout" devrait enterpret "de Guichet", comme le nom de la personne morale "Guichet Wystri Warrick". Bienvenue à la "Apache Wicket" a le contexte des indices qui "Guichet" est la partie d'un nom de lieu, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X