S>>Уточни, что именно ты хочешь.
АVА>В принципе распознавание темы используя базу знаний и веса
А база знаний уже есть, или ее хочется "как-нибудь по ходу получить"?
АVА>я представляю себе реализацию, а вот как быть с теми темами, которые отсутствуют в БД — это пожалуй основной вопрос.
На самом деле, ответ на твой вопрос прост до безобразия — ответа просто не существует.

Поясню что я имею в виду. Область, которую ты затрагиваешь, по определению не может содержать каких-либо окончательных, четких, работающих во всех случаях жизни алгоритмов. Любые тексты, которые подаются системе на вход, кем-то писались, зачастую вырваны из контекста. Одна и та же фраза из-за лингвистических заморочек может обозначать абсолютно разные вещи. Когда ты используешь какие бы то ни было подобные алгоритмы, на результат их работы всегда надо смотреть с некоторым скепсисом, даже если в большинстве случаев они выдают нечто правдоподобное.
Ближе к существу вопроса. Если все-таки попытаться на него ответить, ответ будет звучать как "что хочешь, то и делай".
Можно выделить принципиально два пути.
Первый — наиболее простой: постулировать, что у нас есть уже достаточно хорошая база знаний, и ограничится ей. То есть, считать, что тем вне ее просто не существует (ведь тема, как ты, наверно, понимаешь, понятие очень относительное).
Второй — называя вещи своими именами, пытаться дополнять базу знаний в процессе анализа (при этом не важно, будем ли мы сохранять результаты для других текстов или делать это для одного отдельно взятого). Эта область уже намного сложнее, и ничего путного без погружения с головой в лингвистику, боюсь, не получится. Разве что поступить как Oracle — объявлять новой темой любое неизвестное часто встречающееся слово, что не шибко информативно.
АVА>В теории я понимаю что надо использовать лингвистские заморочи, но всё это очень сильно крышу сносит, хотелось бы что-нить конкретное и эффективное.
АVА>Реализация желательна на Delphi. ИБД на SQL Server, транспорт ADO.
Если не секрет, а откуда корни растут? В смысле, откуда интерес?
Просто подавляющее большинство разработок в этой области коммерческие, за них денег хотят (и зачастую немалых).
Сам я год назад использовал Oracle 9i, пакет Oracle Text. У него есть английский тезаурус и он умеет выделять из английского текста темы с весами. Правда, делает он это весьма посредственно по описанной выше причине, однако это единственное, что у меня оказалось в тот момент под рукой.
... << RSDN@Home 1.1.3 stable >>
Народ! Есть у кого реализация алгоритма распознавания темы документа, или какие нить соображения на эту тему?
АVА>Народ! Есть у кого реализация алгоритма распознавания темы документа, или какие нить соображения на эту тему?
Уточни, что именно ты хочешь.
Распознание, к какой из заданных заранее тем документ ближе?
Выделение основных тем документа (ведь их явно не одна), используя готовые иерархии тем?
Выделение основных тем документа вообще без предварительной информации?
А также, на каком языке хочется это делать (большинство решений в той или иной степени языкозависимы)?
P.S. А вообще, это большая тема, ищи по ключу text mining. Я диплом писал по некоторым ее отголоскам.
... << RSDN@Home 1.1.3 stable >>
S> Второй — называя вещи своими именами, пытаться дополнять базу знаний в процессе анализа (при этом не важно, будем ли мы сохранять результаты для других текстов или делать это для одного отдельно взятого). Эта область уже намного сложнее, и ничего путного без погружения с головой в лингвистику, боюсь, не получится. Разве что поступить как Oracle — объявлять новой темой любое неизвестное часто встречающееся слово, что не шибко информативно.
Боюсь, что этот способ мне всё-таки прийдется освоить, НО я не горю желанием создать text mining на уровне передовых систем, которые толкают за большие бабки, мне достаточно определиться с темой, а всевозможные резюмирования и анотирования-это уже слишком круто. Посему есть мысль поступать таким образом:
Отдельно прочесть заголовок документа и аттрибуты (если возможно), далее анализируем текст на предмет частоты встречаемости. Отдельно весом награждать слова используемые в заголовке, для существительных и слов с большой буквы (не начало предложения), после слов (заключение, итог,...)в разных формах. Далее отсекаем полученную картину по определенному значению весов и впринципе получаем набор значимых слов для данной темы которую можно как-нить обозвать и т.п.
S> Если не секрет, а откуда корни растут? В смысле, откуда интерес?
S> Просто подавляющее большинство разработок в этой области коммерческие, за них денег хотят (и зачастую немалых).
S> Сам я год назад использовал Oracle 9i, пакет Oracle Text. У него есть английский тезаурус и он умеет выделять из английского текста темы с весами. Правда, делает он это весьма посредственно по описанной выше причине, однако это единственное, что у меня оказалось в тот момент под рукой.
На работе задолбали входящие документы разношерстные,

просматривать всё вподряд нет времени, вот я и хочу ввести некий набор интересующих меня тем...(это в примитиве), кое что уже сделал
АVА>На работе задолбали входящие документы разношерстные,
просматривать всё вподряд нет времени, вот я и хочу ввести некий набор интересующих меня тем...(это в примитиве), кое что уже сделал
А для такой задачи не достаточно поиска по сотне ключевых слов?
Или это больше для души?