2017-08-22 4 views
1

Je voudrais marquer des entités particulières d'Elastic. Est-ce supporté? par exemple. Pour le texte:Marquage d'entité dans ElasticSearch

Hello my name is Johnny

Pour tagger aux jetons Hello my name is johnny < person

et mettre en évidence plus tard ces entités? Est-ce que quelqu'un sait d'une telle chose ou un plugin ou un point de direction aiderait.

Répondre

2

ElasticSearch ne fait pas la reconnaissance d'entités nommées. Cependant, vous pouvez utiliser un processeur ingest similaire à celui-ci: https://github.com/spinscale/elasticsearch-ingest-opennlp (bien que vous deviez probablement le modifier pour votre cas d'utilisation exact). Cependant, vous feriez mieux de faire de la reconnaissance d'entité nommée avant d'indexer vos documents. Vous pouvez essayer openNLP ou NLTK, ou s'il s'agit d'un projet non commercial, le NER de Stanford. Je pense que vous voulez ajouter les balises "highlight" vous-même, également avant l'indexation. Je pense à quelque chose comme ceci:

<ne type="person">Johnny</ne> is from <ne type="place">New York</ne>

Vous pouvez utiliser un analyseur personnalisé pour jeter les balises pour l'analyse, ou simplement index deux champs, l'un sans les balises.

+0

Oui, j'ai pensé à cela. Merci pour la suggestion de l'analyseur de jeter les étiquettes. Mon alternative était de créer des tags qui sont peu susceptibles d'être recherchés. – aclokay

1

POS marquage

Si vous voulez dire le marquage partie du discours ElasticSearch ne supporte pas.

Vous devriez le faire vous-même, en utilisant par exemple NLTK, puis indexer vos documents étiquetés.

Sélectionnez

En ce qui concerne le soutien en soulignant oui ElasticSearch, voici la documentation est:

Higlight

+0

Je ne voulais pas dire tag POS, mais quelque chose de similaire ... merci pour la réponse – aclokay