хия. Сначала я бы посмотрел на OpenCalais для поиска сущностей в текстах или вводе. Это здорово, и я сам этим пользовался (ребята из Reuters).
После этого вы можете продолжить анализ текста, создавая ассоциации между сущностями и словами. Я, вероятно, посмотрю их в чем-то вроде WordNet и попытался бы их типизировать, или даже автоматически сгенерировать некоторую онтологию, соответствующую домену, который вы пытаетесь отобразить.
Что касается того, как собрать все воедино, есть много вещей, которые вы можете сделать; вышеупомянутые или двух- или трехпроходные модели попыток выяснить, что такое слова и что они означают. Или, если вы управляете вводом, создайте формат, который легче анализировать, или перейдите по темному пути NLP (что очень весело).
Или вы можете посмотреть что-то вроде Jena для разбора произвольных фрагментов RDF, хотя мне самому не нравится предпосылка RDF (я являюсь составителем тем). Я написал материал, который просматривает слова, фразы или имена в WikiPedia и оценивает их битрейт, основываясь на семантике, найденной на страницах WikiPedia (я мог бы рассказать вам подробности, если потребуется, но разве это не интересно выйти и придумать что-нибудь получше, чем у меня? :), т.е. количество ссылок, количество см. также, объем текста, размер страницы обсуждения и т. д.
За многие годы я написал кучу вещей (даже на PHP и Perl; посмотрите Материалы тематических карт Роберта Барты на CPAN , особенно модули TM для некоторых потрясающих вещей), из движков парсерам что-то странное в середине. Ассоциативные массивы, которые разбивают слова и фразы на части, создавая кумулятивные гистограммы для сортировки их компонентов и так далее. Это все забавно, но что касается усадочных инструментов, я не уверен. Кажется, что цели и потребности у всех разные. Это зависит от того, насколько сложным и сложным вы хотите стать.
В любом случае, надеюсь, это немного поможет. Ура! :)