Блог — Естественный язык. Оценить близость тематики слов
18 апреля 2008 в 18.00
Автор: Степан Овчинников
Естественный язык является не только средством называния предметов, но и описания процессов, явлений, связей, утверждений. Для того, чтобы учиться рассуждать по принципу "Сократ-человек, люди смертны, Сократ смертен" без задания правил вручную, компьютеры должны уметь <a href="http://stepan.intervolga.ru/themes/">понимать, к каким темам близки слова</a>.
Продолжая тему поста про <a href="http://habrahabr.ru/blog/i_am_clever/34277.html">степень эквивалентности смыслов</a>, хочу показать как решается другая задача из той же области. Часто надо оценить, к одной или совсем разным областям знания (группам понятий, тематикам), относятся слова.
Мне задавались вопросы о том, почему корова и молоко, курица и яйцо, монитор и компьютер имеют низкую степень эквивалентности. Отвечаю — это слова из одной оперы, но они означают разные вещи.
Представляемый на суд людей <a href="http://stepan.intervolga.ru/themes/">простой механизм оценивает степень близости тем, к которым относятся слова</a>, предметных областей.
Примеры:
Запрос: 'тепло' и 'холод'.
Близость тем понятий: 90%
Запрос: 'мороз' и 'яблоко'.
Близость тем понятий: 18%
Запрос: 'приставка' и 'суффикс'.
Близость тем понятий: 49% (вероятно, из-за распространенности слова "приставка").
Зачем это нужно? Для решения тех же языковых задач: автоматическая классификация, индуктивный вывод на корпусах текстов, построение семантических сетей и в конечном счете — решения задач искусственного интеллекта.
Как это работает:
На основе информации о словах русского языка.
В основе модели лежит применение толкового словаря (была версия с БСО, в данный момент загружен толковый словарь Ожегова и Шведовой).
Идея работы алгоритма заключается в применении двух показателей:
1. на основе запроса ищутся все словарные статьи, определяющие термин и его синонимы. Словарные статьи анализируются, в них находятся все носители смысла (упрощенно говоря, существительные и прилагательные). Полученные наборы смысловых единиц сопоставляются на предмет наилучшего сопоставления, вычисляется интегральный показатель.
2. на основе запроса ищутся все словарные статьи, содержащие введенный термин. Попарно сопоставляются наборы определяемых понятий.
Данные два критерия отличаются нестабильностью результата. Первый точнее, но иногда дает резко неправильные ответы. Второй склонен к тому, чтобы на все запросы отвечать числом между 40% и 60%. В конкретной реализации применяется среднее арифметическое.
Алгоритм разрабатывался для задачи автоматической классификации текстов по рубрикатору.
ps. Есть косячок в реализации: иногда 0 значит что слово не обнаружено. Не обращайте особого внимания.
pps. Чем более употребительны и привычны для русского языка слова - тем выше шанс получить адекватный ответ. В интернет-специфике, технологии сварки и современном сленге механизм ориентируется слабо.