Эту проблему трудно решить процедурно, но в последнее время в этой области достигнут значительный прогресс.
Большая часть обработки естественного языка начинается с грамматики (которая может быть или не быть независимой от контекста). Это набор правил построения, указывающих, как более общие вещи состоят из более конкретных.
пример контекстно-свободной грамматики:
Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"
Это явно упрощено, но задача создания полной грамматики для определения всего английского языка огромна, и большинство реальных систем определяют только некоторое ее подмножество, применимое к предметной области.
Как только грамматика определена (или изучена с использованием сложных алгоритмов, известных только Google, подобным Google), строка, называемая «примером», анализируется в соответствии с грамматикой. который помечает каждое слово частями речи. очень сложная грамматика будет состоять не только из частей речи, которые вы выучили в школе, но и из таких категорий, как «Веб-сайты», «Имена пожилых людей» и «ингредиенты».
Эти категории могут быть кропотливо встроены в грамматику людьми или выведены с помощью таких вещей, как аналоговое моделирование или машины опорных векторов. В каждом из них такие вещи, как «курица», «футбол», «барбекю» и «крикет», будут определены как точки в пространстве очень большой размерности вместе с миллионами других точек, а затем алгоритмы кластеризации будут определять группы просто в зависимости от положения этих точек относительно друг друга. тогда можно попытаться вывести имена групп из текста примера.
текст ссылки В этом поиске в Google перечислены несколько техник, используемых в НЛП, и вы можете многому у них научиться.
РЕДАКТИРОВАТЬ, чтобы просто решить эту проблему, можно сканировать Интернет в поисках предложений формы «_ is a _», чтобы создать базу данных отношений между элементами и категориями. затем вы анализируете строку, как указано выше, и ищете слова, которые являются известными элементами в базе данных.
person
Nathan
schedule
08.11.2009