Reconhecimento de entidade nomeada com expressão regular: NLTK

Eu tenho jogado com o kit de ferramentas NLTK. Me deparei muito com esse problema e procurei a solução on-line, mas em nenhum lugar obtive uma resposta satisfatória. Então, eu estou colocando minha consulta aqui.

Muitas vezes, o NER não identifica NNPs consecutivos como um NE. Eu acho que editar o NER para usar o RegexpTagger também pode melhorar o NER.

Exemplo:

Entrada:

Barack Obama é uma ótima pessoa.

Resultado:

Árvore ('S', [Árvore ('PESSOA', [('Barack', 'NNP')]), Árvore ('ORGANIZAÇÃO', [('Obama', 'NNP')]), ('é', 'VBZ'), ('a', 'DT'), ('ótimo', 'JJ'), ('pessoa', 'NN'), ('.', '.')])

enquanto que

entrada:

O ex-vice-presidente Dick Cheney disse à apresentadora de rádio conservadora Laura Ingraham que "estava honrado" por ser comparado a Darth Vader enquanto estava no cargo.

Resultado:

Árvore ('S', [('Anterior', 'JJ'), ('Vice', 'NNP'), ('Presidente', 'NNP'), Árvore ('NE', [('Dick', ' NNP '), (' Cheney ',' NNP ')]), (' informado ',' VBD '), (' conservador ',' JJ '), (' rádio ',' NN '), (' host ' , 'NN'), Árvore ('NE', [('Laura', 'NNP'), ('Ingraham', 'NNP')]), ('that', 'IN'), ('he', «PRP»), ('', ''), (' was ',' VBD '), (' honrado ',' VBN '), ("' '", "' '"), (' para ',' TO '), (' ser ', 'VB'), ('comparado', 'VBN'), ('para', 'TO'), Árvore ('NE', [('Darth', 'NNP'), ('Vader', 'NNP' )]), ('while', 'IN'), ('in', 'IN'), ('escritório', 'NN'), ('.', '.')])

Aqui o Vice / PNN, Presidente / PNN, (Dick / PNN, Cheney / PNN), é extraído corretamente.

Portanto, acho que se o nltk.ne_chunk for usado primeiro e, se duas árvores consecutivas forem NNP, haverá grandes chances de que ambas se refiram a uma entidade.

Qualquer sugestão será realmente apreciada. Estou procurando falhas na minha abordagem.

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion