web-dev-qa-db-fra.com

Comment puis-je extraire des mots d'une phrase et déterminer quelle partie du discours chacun est?

Je veux écrire quelque chose qui prend une phrase et identifie chaque mot qu'il contient et définit quelle partie du discours est chaque mot.

Par exemple

Bonjour tout le monde, je suis une phrase

retournerait ceci

verb noun, pronoun verb adjective noun

Idéalement, j'aimerais éventuellement aller un peu plus loin et prendre une phrase et lui faire comprendre par programme ce qu'il essaie d'interpréter et peut-être faire quelque chose à ce sujet.

Ma question est donc: quelqu'un a-t-il entendu parler de quelque chose comme ça?

19
Vinny

Cela s'appelle Natural Language Processing et c'est un domaine immense et complexe. Quelque chose comme vous décrivez est une réalisation monumentale, et même les meilleures solutions, comme Watson , sont loin d'être parfaites.

Des choses comme ça le rendent difficile: "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo"

une phrase grammaticalement correcte en anglais américain, utilisée comme exemple de la façon dont les homonymes et les homophones peuvent être utilisés pour créer des constructions linguistiques compliquées. Il a été discuté dans la littérature depuis 1972 ... Il a également été présenté dans le livre de Steven Pinker de 1994 The Language Instinct comme exemple d'une phrase qui est " apparemment absurde "mais grammatical ...

Le sens de la phrase devient plus clair quand on comprend qu'elle utilise la ville de Buffalo, New York et le verbe quelque peu inhabituel "buffler" (signifiant "intimider ou intimider"), et lorsque la ponctuation et la grammaire sont développées pour que la phrase se lit comme suit: "Buffalo buffalo that Buffalo buffalo buffalo, buffalo Buffalo buffalo." Le sens devient encore plus clair lorsque des synonymes sont utilisés: "Buffalo bison que d'autres Buffalo bison bully, eux-mêmes bully Buffalo bison."

19
Ryathal

Bien que fractionner une phrase et déterminer l'exactitude grammaticale tout en résolvant votre premier problème soit plus facile que votre deuxième problème, de nombreuses complexités comme les noms verbaux ou les gérondifs comme la natation, la programmation, etc. et d'autres subtilités de ce genre, c'est toujours un défi - Voir Morons ' réponse.

Mais votre deuxième problème - les gens ont déployé d'énormes efforts pour trouver une solution parfaite, mais un algorithme "d'interprétation" vraiment parfait n'est pratiquement réalisable pour aucune langue naturelle comme l'anglais - il existe des variations qui bousiller votre algorithme. Ce domaine - un hybride entre l'IA, l'informatique et la linguistique est connu sous le nom de NLP . Considérez ceci: même Google Translate n'est pas parfait pour "interpréter" des phrases.

Mais néanmoins, c'est un domaine très intéressant à explorer.

6
yati sagade

Je pense que vous devriez commencer à lire cet article Wikipedia:

http://en.wikipedia.org/wiki/Part-of-speech_tagging

(c'est un domaine de recherche, ne vous attendez pas à une solution facile.)

4
Doc Brown