Quero escrever algo que use uma frase e identifique cada palavra que ela contém e define qual parte do discurso de cada palavra.
Por exemplo
Olá Mundo, eu sou uma frase
retornaria isso
verb noun, pronoun verb adjective noun
Idealmente, eu gostaria de, eventualmente, dar um passo adiante e tomar uma sentença, e fazer com que ele entenda de forma programática o que está tentando interpretar e talvez faça algo a respeito.
Então, minha pergunta é: alguém já ouviu falar de algo assim?
Respostas:
Isso se chama Processamento de linguagem natural e é um campo enorme e complexo. Algo como você descreve é uma conquista monumental, e mesmo as melhores soluções, como Watson , nem são perfeitas.
Coisas assim tornam o desafio: "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo"
fonte
Embora dividir uma frase e determinar a correção gramatical, além de resolver o seu primeiro problema, seja mais fácil do que o seu segundo problema, muitas complexidades, como substantivos verbais ou gerúndios, como natação, programação, etc. e outras complexidades, ainda é um desafio. responda.
Mas o segundo problema - as pessoas têm colocado em enormes esforços para encontrar uma solução perfeita, mas um algoritmo realmente perfeito "interpretação" não é realizável praticamente para qualquer linguagem natural como o Inglês - existem variações que vai estragar o seu algoritmo. Este campo - um híbrido entre IA, Ciência da Computação e Linguística é conhecido como PNL . Considere o seguinte: mesmo o Google Translate não é perfeito ao "interpretar" frases.
Mas, no entanto, este é um campo muito interessante para se discutir.
fonte
Eu acho que você deveria começar a ler este artigo da Wikipedia:
http://en.wikipedia.org/wiki/Part-of-speech_tagging
(é um campo de pesquisa, não espere uma solução fácil para ele.)
fonte
Uma maneira barata de fazer isso seria criar um banco de dados do dicionário (tenho quase certeza de que alguém fez isso).
Precisa de dois campos na tabela:
word
eusage
Transforme a frase em uma matriz de cadeias (cada palavra sendo uma cadeia) e independentemente:
É uma solução pesada, mas que eu usei no passado.
fonte