Ajuda sobre o NER no NLTK

12

Eu trabalho no NLTK há algum tempo usando Python. O problema que estou enfrentando é que não há ajuda disponível no treinamento do NER no NLTK com meus dados personalizados. Eles usaram o MaxEnt e o treinaram no corpus do ACE. Pesquisei bastante na web, mas não consegui encontrar nenhuma maneira de treinar o NER do NLTK.

Se alguém puder me fornecer qualquer link / artigo / blog, etc., que possa me direcionar para o formato de conjuntos de dados de treinamento usado no treinamento do NER da NLTK, para que eu possa preparar meus conjuntos de dados nesse formato específico. E se eu for direcionado para qualquer link / artigo / blog, etc., que possa me ajudar a TREINAR o NER do NLTK para meus próprios dados.

Esta é uma pergunta amplamente pesquisada e menos respondida. Pode ser útil para alguém no futuro que trabalhe com a NER.

Sarmad
fonte
Postagens cruzadas
Franck Dernoncourt

Respostas:

4

O treinamento de um modelo, relacionado à extração de informações , em geral, e o reconhecimento / resolução de entidades nomeadas (NER) , em particular, é descrito em detalhes no Capítulo 7 do Livro NLTK , disponível on-line neste URL: http: //www.nltk .org / book / ch07.html .

Além disso, acho que você pode achar útil minha resposta relacionada no site Cross Validated . Possui muitas referências a fontes relevantes sobre NER e tópicos relacionados, bem como a várias ferramentas de software relacionadas .

Aleksandr Blekh
fonte
Eles não mencionam como treinar o modelo NER em dados personalizados, você pode dizer como fazê-lo?
Hima Varsha
1
@HimaVarsha Não sou especialista nesta área. No entanto, ... eu acho que o modelo NLTK NER vem pré-treinado no corpus conll2000 , portanto, não há informações no livro NLTK. Verifique os seguintes recursos: 1. nltk-trainer.readthedocs.io (provavelmente o que você precisa; provavelmente a seção Training IOB Chunkers ). 2. sujitpal.blogspot.com/2012/11/… (também pode ser útil). 3. nlp.stanford.edu/software/crf-faq.shtml#a (caso você use ou decida usar o software Stanford NER).
Aleksandr Blekh
Acho que a implementação stanfordcrf leva dados personalizados, mas o NTLK NER vem apenas pré-treinado. O treinamento IOB Chunkers está apenas fragmentando, certo? Ou isso faz NER?
Hima Varsha
@HimaVarsha Preste mais atenção aos conselhos que você está recebendo. Se você leu a postagem pelo link # 2 acima com atenção, verá que o código ali faz treinamento e execução do modelo NER. Acho que não posso ajudá-lo além dos conselhos acima.
Aleksandr Blekh
3

Este artigo é bom o suficiente? http://www.succeed-project.eu/wiki/index.php/NLTK#Input_format_for_training

Há explicações sobre como o corpus deve ser.

Seus dados precisam estar no formato IOB (tag de palavra chunktag) para fazê-lo funcionar.
Eric NNP B-PERSON
é VB O CEO
da AT B-NP
NN I-NP
do IN O
Google NNP B-ORGANIZAÇÃO

MaticDiba
fonte
1
Seria ideal publicar um breve resumo do artigo nesta resposta.
sheldonkreger
1

Achei este tutorial bastante útil: Guia completo para criar seu próprio Reconhecedor de Entidades Nomeadas com Python Ele usa o corpus do Groningen Meaning Bank (GMB) para treinar seu pedaço de NER.

Depois disso, você pode verificar este tutorial com a mesma pessoa: Treinando um sistema NER usando um grande conjunto de dados Onde ele usa o scikit, aprenda a melhorar o desempenho do seu sistema.

Finalmente, alguns tutoriais realmente úteis podem ser encontrados aqui: Tutorial do NLTK Esse cara possui um canal no youtube com muitos tutoriais em vários assuntos (ML, NLP, Python ...)

Espero que ajude.

Iraklis Moutidis
fonte