Pergunta

I love to eat chicken.
Today I went running, swimming and played basketball.

Meu objetivo é voltar COMIDA e ESPORTES apenas analisando essas duas frases. Como você pode fazer isso?

Estou familiarizado com a NLP e o WordNet. Mas há algo mais de alto nível/tecnologia prática/moderna?

Existe algo que categoriza automaticamente as palavras para você, em "níveis"?

Mais importante, qual é o termo técnico para esse processo?

Foi útil?

Solução

Esse problema é difícil de resolver processualmente, mas muito progresso foi feito na área recentemente.

A maioria do processamento de linguagem natural começa com uma gramática (que pode ou não ser livre de contexto.) É um conjunto de regras de construção que afirmam como as coisas mais gerais são feitas com as mais específicas.

Exemplo de contexto Gramática gratuita:

Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"

Obviamente, isso é simplificado demais, mas a tarefa de fazer uma gramática completa para definir todo o inglês é enorme, e a maioria dos sistemas reais define apenas algum subconjunto aplicável a um domínio do problema.

Uma vez que uma gramática é definida (ou aprendido usando algoritmos complicados conhecidos apenas para empresas como o Google), uma string, chamada de "exemplar", é analisada de acordo com a gramática. que identifica cada palavra com as partes da fala. Uma gramática muito complexa não teria apenas as partes do discurso que você aprendeu na escola, mas categorias como "sites" "nomes de idosos" e "ingredientes".

Essas categorias podem ser laboriosamente incorporadas à gramática por seres humanos ou inferidas usando coisas como modelagem analógica ou máquinas vetoriais de suporte. Em cada um, coisas como "frango", "futebol", "churrasco" e "críquete" seriam definidas como pontos em um espaço dimensional muito alto, juntamente com milhões de outros pontos, e depois os algoritmos de agrupamento, definiriam grupos apenas com base nas posições desses pontos em relação a cada um. Então, pode -se tentar inferir nomes para os grupos do texto de exemplo.

Texto do linkEsta pesquisa do Google lista várias técnicas usadas no PNL e você pode aprender muito com elas.

Editar para apenas resolver esse problema, pode -se rastejar na web por frases do formulário "_ é um _"Para criar um banco de dados de relacionamentos com categoria de itens. Então você analisa uma string como acima e procure palavras que sejam itens conhecidos no banco de dados

Outras dicas

Conjuntos do Google faz parte disso, e há alguns discussão Isso menciona superconjuntos. No entanto, eu realmente não vi detalhes técnicos lá, apenas idéias e discussões.

Talvez isso possa pelo menos ajudar sua pesquisa ...

A pergunta que você faz é uma área inteira de pesquisa chamada categorização tópica de texto. Uma ótima visão geral das técnicas é "Aprendizado de máquina na categorização automatizada de texto" em pesquisas de computação ACM, de Fabrizio Sebastiani.. Uma das técnicas mais simples (embora não necessariamente o melhor desempenho) é ter numerosos exemplos (centenas) de frases em cada categoria e, em seguida, treinar um classificador bayesiano ingênuo nessas frases de amostra. NLTK contém um classificador bayesiano ingênuo no módulo nltk.classify.naivebayes.

Você pode dar uma olhada em Domínios WordNet Recurso de pessoas do FBK. É uma extensão do WordNet, projetada para ser usada para categorização de texto e desambiguação do senso de palavras. Permite graus variados de granularidade.

http://wndomains.fbk.eu/

Uma das maneiras possíveis de aplicá-lo à sua tarefa pode ser para tirar as chunks NP de suas frases, obter as palavras da cabeça e obterem as categorias dos domínios WordNet.

Tenqyu resolveu -o usando o python e o aprendizado de máquina.

  1. Tem um conjunto de dados de texto
  2. Aplique a vetorização TF-IDF. O peso de um termo que ocorre em um documento é simplesmente proporcional
    para o termo frequência. (A suposição de Luhn 1957) A especificidade de um termo pode ser quantificada como uma função inversa do número de documentos em que ocorre.
  3. Um modelo de espaço vetorial
  4. Classificação Multinomial Nativa Bayes

O processo com mais detalhes está aqui:https://hackernoon.com/how-to-better-classify-coachella-with-machine-learning-part-1-dc84c53d1a9c

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