Ich möchte etwas schreiben, das einen Satz enthält und jedes Wort identifiziert und definiert, welcher Teil der Sprache jedes Wort ist.
Beispielsweise
Hallo Welt, ich bin ein Satz
würde dies zurückgeben
verb noun, pronoun verb adjective noun
Idealerweise möchte ich es irgendwann noch einen Schritt weiter gehen und einen Satz nehmen und ihn programmatisch verstehen lassen, was er zu interpretieren versucht, und vielleicht etwas dagegen tun.
Meine Frage ist also, hat jemand von so etwas gehört?
Antworten:
Dies nennt man Natural Language Processing und es ist ein riesiges, komplexes Feld. So etwas wie Sie beschreiben, ist eine monumentale Leistung, und selbst die besten Lösungen wie Watson sind bei weitem nicht perfekt.
Solche Dinge machen es schwierig: "Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo"
quelle
Obwohl das Teilen eines Satzes und das Ermitteln der grammatikalischen Korrektheit zusammen mit dem Lösen Ihres ersten Problems einfacher ist als das Lösen Ihres zweiten Problems, sind viele Komplexitäten wie Verb- oder Gerundien wie Schwimmen, Programmieren usw. und andere solche Komplikationen immer noch eine Herausforderung - siehe Morons ' Antworten.
Aber Ihr zweites Problem - die Menschen in großen Anstrengungen gesetzt haben eine perfekte Lösung zu finden, aber ein wirklich perfekt „Interpretation“ Algorithmus nicht realisierbar ist praktisch für jede natürliche Sprache wie Englisch - es gibt Variationen, wird Ihren Algorithmus vermasseln. Dieses Feld - eine Mischung aus KI, Informatik und Linguistik - wird als NLP bezeichnet . Bedenken Sie Folgendes: Auch Google Translate ist nicht perfekt, wenn Sie Sätze "interpretieren".
Dennoch ist dies ein sehr interessantes Feld, mit dem man sich beschäftigen muss.
quelle
Ich denke, Sie sollten anfangen, diesen Wikipedia-Artikel zu lesen:
http://en.wikipedia.org/wiki/Part-of-speech_tagging
(Es ist ein Forschungsgebiet, erwarte keine einfache Lösung dafür.)
quelle
Ein billiger Weg, dies zu tun, wäre, eine Datenbank des Wörterbuchs einzurichten (ich bin fast sicher, dass jemand dies getan hat).
Benötigen Sie zwei Felder in der Tabelle:
word
undusage
Verwandle die Phrase in ein Array von Strings (jedes Wort ist ein String) und unabhängig voneinander:
Es ist eine schwere Lösung, aber eine, die ich in der Vergangenheit verwendet habe.
quelle