Quais são bons pontos de partida para alguém interessado em processamento de linguagem natural? [fechadas]

StackOverflow https://stackoverflow.com/questions/212219

  •  03-07-2019
  •  | 
  •  

Pergunta

Pergunta

Então eu recentemente veio com alguns novos projetos possíveis que teriam de lidar com derivando 'significado' do texto apresentado e gerado pelos usuários.

processamento de linguagem natural é o campo que lida com esses tipos de problemas, e depois de algum pesquisa inicial achei o OpenNLP Hub e colaborações universitários como o attempto projeto . E stackoverflow tem este .

Se alguém pudesse me conectar-se a alguns bons recursos, desde papéis reseach e textos introdutórias para apis, eu seria mais feliz do que uma criança 6 anos de idade, abrindo os presentes de Natal!

Atualização

Através de uma das suas recomendações eu encontrei OpenCyc ( 'do mundo maior e mais completa base de conhecimento geral e motor de raciocínio do senso comum "). Ainda mais surpreendente ainda, há um projeto que é uma versão destilada de OpenCyc chamado UMBEL . Ele apresenta dados semânticos em RDF / coruja / skos n3 sintaxe.

eu também tropeçou em antlr , um gerador de analisador para 'construir reconhecedores, intérpretes, compiladores e tradutores de descrições gramaticais .

E há uma pergunta aqui por mim, que lista toneladas de livre e aberto dados.

Graças stackoverflow comunidade!

Foi útil?

Solução

chamada resistente, a PNL é um campo muito mais amplo do que a maioria das pessoas pensa que é. Basicamente, a linguagem pode ser dividido em várias categorias, o que exigirá que você aprenda coisas totalmente diferentes.

Antes de começar, deixe-me dizer que eu duvido que você vai ter algum sucesso notável (como um profissional, pelo menos) sem ter um grau em algum campo (intimamente relacionada). Há um monte de teoria envolvidos, a maior parte é material seco e difícil de aprender. Você vai precisar de muita resistência e, acima de tudo:. Hora

Se você está interessado no significado do texto, bem, isso é a próxima grande coisa. motores de busca semântica são previstos como iniciar Web 3.0, mas estamos longe de 'lá' ainda. Extraindo a lógica de um texto depende de vários passos:

  • Tokenization, Chunking
  • Desambiguação em um nível lexical (O tempo voa como uma flecha, mas moscas de fruta como uma banana.)
  • sintática de análise
  • Análise morfológica (tempo, aspecto, case, número, outros enfeites)

Uma pequena lista, em cima da minha cabeça. Há mais :-), e muitos mais detalhes para cada ponto. Por exemplo, quando eu digo "análise", o que é isso? Há muitos diferentes algoritmos de análise, e existem apenas como muitos formalismos de análise. Entre os mais poderosos são Tree-adjacente gramática Cabeça-driven frase estrutura gramatical . Mas ambos são pouco utilizados no campo (por agora). Normalmente, você estará lidando com alguma abordagem generativa cozido meia, e terá de realizar análise morfológica si mesmo.

Indo de lá para a semântica é um grande passo. interface de uma sintaxe / semântica é dependente tanto, na sintática e framework semântico empregadas, e não há nenhuma solução de trabalho único ainda. Do lado semântico, há semântica gerativa clássicos, então não há Discurso Representação Teoria , semântica dinâmica , e muitos mais. Mesmo o formalismo tudo lógica baseia-se ainda não está bem definida. Alguns dizem que se deve usar a lógica de primeira ordem, mas que não parece ser suficiente; então não há lógica intensional como usado por Montague, mas que parece excessivamente complexo, e computacionalmente inviável. Há também a lógica dinâmica (Groenendijk e Stokhof foram pioneiros este material. Grandes coisas!) E muito recentemente, neste verão, na verdade, Jeroen Groenendijk apresentou um novo formalismo, Inquisitive Semântica , também muito interessante.

Se você quiser começar em um nível muito simples, leia Blackburn e Bos ( 2005) , é uma grande coisa, ea introdução de-facto para Computacional Semântica! I recentemente alargado o seu sistema para cobrir a partição da teoria de perguntas (perguntas de resposta é uma besta!), Como proposto por Groenendijk e Stokhof (1982), mas, infelizmente, a teoria tem uma complexidade de O (n²) sobre o domínio de indivíduos . Enquanto isso, eu achei implementação do B & B a ser um pouco, erhm ... hackish, em lugares. Ainda assim, ele vai realmente ajudá-lo a mergulhar em semântica computacional, e ainda é uma vitrine muito impressionante do que pode ser feito. Além disso, eles merecem cool-pontos extra para a implementação de uma gramática que é liquidada em Pulp Fiction (o filme).

E enquanto eu estou nele, pegar Prolog. Muita pesquisa em semântica computacional é baseada em Prolog. Saiba Prolog Now! é uma boa introdução. Também posso recomendar "The Art of Prolog" e de Covington "Programação Prolog em profundidade" e "Processamento de Linguagem Natural para Prolog programadores", o primeiro dos quais está disponível gratuitamente online.

Outras dicas

Chomsky é totalmente a fonte errada de olhar para a PNL (e ele diria que tanto a si mesmo, enfaticamente) - ver: " Métodos estatísticos e Lingüística " por Abney.

Jurafsky e Martin, mencionado acima, é um padrão de referência, mas eu mesmo prefiro Manning e Schütze . Se você é sério sobre a PNL você provavelmente vai querer ler ambos. Há vídeos de um dos cursos de Manning disponíveis on-line .

Se você passar Prolog até o capítulo DCG em Saiba Prolog Now! mencionado pelo Sr. Dimitrov acima, você terá um bom começo no sentido de conseguir alguns semântica em seu sistema, uma vez Prolog dá-lhe uma maneira muito simples de manter uma base de dados de conhecimento e crença, que pode ser atualizado através de pergunta-resposta.

No que se refere a literatura, eu tenho uma recomendação importante para você: correr e comprar Fala e Processamento de Linguagem por Jurafsky & Martin. É muito bonito o livro sobre PNL (o primeiro capítulo está disponível on-line); Usado em uma cursos frillion universitários, mas também muito legível para o não-linguista e praticamente orientado, enquanto ao mesmo tempo indo bastante profundo sobre os problemas lingüísticos. Eu realmente não posso recomendar o suficiente. Capítulos 17, 18 e 21 parecem ser o que você está procurando (14, 15 e 18 na primeira edição); eles mostram-lhe a notação lambda simples que se traduz muito bem para Prolog DCG Com recursos.

Oh, btw, em obter os mestrado em lingüística; Se semântica NL é o que você é, eu prefiro recomendam tomar todos os cursos AI-relacionados que você pode encontrar (embora quaisquer cursos sobre semântica "simples" linguística, lógica, semântica lógica, DRT , LFG / HPSG / CCG, NL análise, teoria lingüística formal, etc. não faria mal ...)

literatura original do Reading Chomsky não é realmente útil; tanto quanto eu sei que não existem implementações atuais que diretamente correspondem às suas teorias, todo o material útil de seu é muito bonito subsumida por outras teorias (e quem permanece perto de linguistas para qualquer questão de tempo vai absorver o conhecimento de Chomsky por osmose).

Eu recomendo brincar com o NLTK e ler o NLTK Livro . O NLTK é muito poderoso e fácil de entrar.

Você poderia tentar ler um pouco sobre frase grammers estruturados , que é basicamente a matemática por trás de grande processessing idioma. Na verdade não é tão pesado, sendo em grande parte baseado em conjunto e teoria dos grafos. Estudei-o muitas luas atrás, como parte de um curso de matemática discreta, e eu acho que há muitas referências boas disponíveis nesta fase.

Edit: Não tanto quanto eu esperava no Google, embora um presente parece com uma fonte boa aprendizagem.

Um dos primeiros exploradores em PNL é Noam Chomsky; ele escreveu pequenos livros sobre o assunto nos anos 50 através dos anos 70. Você pode achar que a leitura envolvente.

Cycorp Tem um descrição curta de como seus deriva da base de conhecimento Cyc significando de sentenças.

Ao utilizar uma base de conhecimento enorme de fatos comuns, o sistema pode determinar a análise mais lógica de uma frase.

Um lugar simples para começar com os blocos de construção é a olhada na documentação para um pacote que tentativas de fazê-lo. Eu recomendo o Python [Natural Language Toolkit (NLTK) 1 , principalmente por causa da sua bem escrito, livro livre, que está cheia de exemplos. Ele não vai ficar todo o caminho para o que você quer (o que é um problema de AI-duro), mas ele vai te dar um bom equilíbrio. NLTK tem analisadores, Chunkers, gramáticas livres de contexto, e muito mais.

Esta é realmente material duro. Eu começaria por obter pelo menos um mestrado em Linguística, e depois trabalhar para o meu doutoramento em ciência da computação, concentrando-se em PNL.

O problema é que a maioria de nós não têm a compreensão de que a linguagem é. E sem essa compreensão, é sangrenta difícil de implementar uma solução.

Outros comentários dar algumas leituras, que são provavelmente muito bem se você quer começar a brincar com um pequeno subconjunto do problema, mas, a fim de chegar a uma solução realmente robusta, então não há atalhos. Você precisa da formação acadêmica em ambas as disciplinas.

A introdução legível muito agradável é o instinto da linguagem por Steven Pinker. Ele vai para o material Chomsky e também conta histórias interessantes a partir do ângulo biologia evolutiva. Pode valer a pena começando com algo como isso antes de mergulhar em papéis de Chomsky e trabalhos relacionados, se você é novo para o assunto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top