Existe uma boa biblioteca de processamento de linguagem natural [fechado]

90

Eu preciso implementar alguma PNL em meu módulo atual. Estou procurando alguma boa biblioteca que possa me ajudar aqui. Eu me deparei com o 'LingPipe', mas não consegui acompanhar completamente como usá-lo.
Basicamente, precisamos implementar um recurso onde o aplicativo possa decifrar as instruções do cliente (instruções de entrega) digitadas em inglês simples. Por exemplo:

  • Pegarei amanhã às 12:00
  • Solicitar entrega após 10 de junho
  • Por favor não envie antes de quarta-feira
  • Adicione mais 10 unidades de XYZ ao pedido
Vini
fonte

Respostas:

78

LingPipe é muito bom e bem documentado. Você também pode dar uma olhada em:

O último especificamente pode ser do seu interesse, embora eu não saiba se existem implementações Java prontamente disponíveis (e talvez isso seja muito difícil para o seu problema de qualquer maneira :-)

A ideia de Paul de usar uma DSL é provavelmente mais fácil e rápida de implementar e mais confiável de usar para seus clientes. Eu também recomendaria examinar isso primeiro.

n3º
fonte
1
Apresentei meu relatório com base nas contribuições que obtive neste fórum e em outros lugares da rede. Eu também sugeri as outras opções que você sugeriu e o Biz decidiu manter isso em espera (agora começa o P&D para encontrar o melhor candidato possível).
Vini
1
Se você comparar LingPipe e outros que você listou, qual você prefere? Eu pergunto isso não especificamente para a pergunta de @ Winnie, eu pergunto para um propósito geral.
kamaci
1
Confira MALLET: mallet.cs.umass.edu
Samik R
11

Acho que a escolha de usar ou não a PNL pode depender dos requisitos específicos do seu sistema. É um requisito que o inglês de formato livre seja aceito ou apenas um determinado conjunto de instruções será aceito? Pode ser mais fácil construir uma linguagem de domínio específico que suporte o que seus usuários precisam transmitir do que fazer uma análise semântica completa de texto de formato livre.

No espaço Java, Groovy tem algum suporte para construir DSLs .

Paul Morie
fonte
Aqui estão algumas linhas do documento de requisitos: '.. e o usuário deve ser capaz de inserir uma nota ou uma instrução especial em inglês simples. O sistema deve então analisar a instrução do usuário e preencher os campos relevantes (se houver) do pedido com os valores corretos. "
Vini
10
Esse é um requisito muito vago. Por exemplo, a nota precisa ser gramaticalmente correta? Não tenho certeza se as partes que surgiram com os requisitos estão familiarizadas com o estado da PNL, mas o problema que eles descreveram é essencialmente compreensão de leitura, ou compreensão da linguagem natural, que é um dos problemas descritos como 'o sagrado graal 'da PNL. É duvidoso para mim que você encontre um pacote que possa apenas 'fazer isso' para você - provavelmente é muito mais realista dar ao usuário uma IU onde ele pode especificar um número limitado de instruções especiais.
Paul Morie