Word2Vec para reconhecimento de entidade nomeada

25

Estou procurando usar a implementação word2vec do google para criar um sistema de reconhecimento de entidade nomeado. Ouvi dizer que as redes neurais recursivas com propagação reversa através da estrutura são adequadas para tarefas de reconhecimento de entidades nomeadas, mas não consegui encontrar uma implementação decente ou um tutorial decente para esse tipo de modelo. Como estou trabalhando com um corpus atípico, as ferramentas NER padrão no NLTK e similares tiveram um desempenho muito ruim e parece que vou precisar treinar meu próprio sistema.

Em resumo, quais recursos estão disponíveis para esse tipo de problema? Existe uma implementação de rede neural recursiva padrão disponível?

Madison May
fonte
Você já tentou treinar o Stanford NER em seu corpus? Há um tutorial aqui .
Emre
Eu não tenho - deveria dar uma chance para ver como se sai.
Madison Mai
Eu gostaria de usar os recursos do word2vec ou similares, pois tenho acesso a um conjunto de dados rotulado relativamente pequeno e preciso aproveitar ao máximo os dados não rotulados que tenho em mãos.
21414 Madison

Respostas:

7

Dois artigos recentes usam uma arquitetura de aprendizado profundo chamada CharWNN para solucionar esse problema. O CharWNN foi usado pela primeira vez para obter resultados de última geração (sem recursos artesanais) na marcação de parte do discurso (POS) em um corpus em inglês.

O segundo artigo do mesmo autor usa a mesma arquitetura (ou similar) para prever se uma palavra pertence a 10 classes de Entidades Nomeadas, com resultados aparentes no estado da arte.

shark8me
fonte
Interessante. Obrigado por compartilhar isso. Eu me pergunto por que eles não testaram essa abordagem em corpora em inglês.
MaticDiba
3

Tente http://deeplearning4j.org/word2vec.html . Isso tem uma implementação do Word2Vec usada em vez do Pacote de palavras para o NER e outras tarefas da PNL.

theclaymethod
fonte
11
Não tive problemas para encontrar implementações do word2vec, mas não consegui encontrar uma rede recursiva funcional para usar.
2828
O link não está mais ativo, se possível, compartilhe o novo link de trabalho.
Amandeep 15/03
1

Aqui estão algumas idéias sobre como usar vetores de palavras para o NER, que adota uma abordagem centrada no word2vec principalmente não supervisionada.

  1. Dado um conjunto de vetores de palavras (algo que você treinou ou algo disponível no mercado como GoogleNews-vectors-negative300.bin), descubra os clusters no espaço vetorial. Esses clusters são basicamente suas definições para vários conceitos sem nome.
  2. Com supervisão mínima, você pode mapear / converter os clusters sem nome para corresponder ao conhecimento humano, criando conceitos nomeados com base em vetores de palavras conhecidos e conceitos sem nome. Por exemplo, um método findCluster(['joy', 'surprise', 'disgust', 'trust', 'fear', 'sadness', 'anger', 'anticipation'])pode retornar uma lista contendo centenas de palavras relacionadas principalmente à emoção. Se você nomear esta lista como 'emoção', então você terá um conceito nomeado 'emoção' definido com base no espaço vetorial.
  3. Você também pode fazer matemática vetorial para encontrar o conceito intermediário entre dois dados. Por exemplo, a matemática do vetor pode dizer que, quando são dadas duas palavras 'surpresa' e 'repulsa', são encontradas as seguintes: desânimo, espanto, decepção, espanto, perplexidade, exasperação, descrença, choque etc. Isso permite você construir relacionamento entre conceitos.
  4. Você pode repetir o exposto acima para criar vários tipos de concpts nomeados, como: dias da semana, todas as emoções, emoções felizes, veículos, etc.
  5. Depois de criar camadas de conceitos nomeados, você pode treinar uma RNN em um corpus de texto que tenha sido aumentado com os conceitos nomeados, para que 'saltos de raposa marrom' também seja '{color} {animal} {action}' etc. Dessa forma, a RNN deve ser capaz de aprender alguma gramática rudimentar de maneira não supervisionada.
  6. Se você criou uma gramática suficientemente poderosa a partir das opções acima, poderá aplicá-la em algumas de suas tarefas NER.
Kaihu Chen
fonte