WordSyn: версия 5.0.3 WordSyn 5: вопросы и ответы

WordSyn 5: подготовка базы n-грамм

Сегодня несколько часов провел за реализацией поиска подходящих пар слов. Объем программы вырос на 8 мегабайт за счет внедрения в код данных о 775 тысячах пар “прилагательное-существительное”. Теперь программа может выдавать все известные ей пары синонимов для любых известных ей слов.  При этом программа не только возвращает эти пары, но еще и приводит прилагательные к нужному роду, числу и падежу. Так что теперь осталось только прикрутить эту фичу к синонимайзеру и научить его использовать эту замечательную базу.

В частности, для пары слов “милый дом” программа подобрала вот такие пары синонимов:

родная квартира (92)
родная хата (100)
милый дом (101)
золотой гроб (106)
милый домик (119)
родное пепелище (130)
симпатичный домик (149)
родной кров (209)
родная семья (226)
золотой дворец (233)
родной очаг (449)
родное гнездо (537)
славный род (649)
родной дом (6509)

где число в скобках обозначат частоту встречаемости каждой из пар в текстах, которые были обработаны во время сбора пар синонимов. В данном примере программа использовала все известные ей синонимы для обоих слов и отбросила неизвестные ей сочетания вроде “славная хата”. Как можно заметить, в предложенных вариантах присутствуют заведомо неправильные пары. К примеру, “золотой гроб” не совсем подходит, хотя гроб тоже является жилищем для покойника, а золотой гроб вполне можно назвать милым, хоть и с натяжкой. Впрочем, это уже дело вкуса.

Кстати, способность программы генерировать пары синонимов можно направить в нужное русло, передавая ей в качестве параметров допустимые синонимы для каждого из слов, а она подберет из них наиболее подходящие. Правда, при этом будет нужно иметь достаточно чистую базу синонимов.

Вторым этапом подготовки базы n-грамм будет ее расширение: на очереди таблицы пар “наречие-глагол” (хорошо бежит), “наречие-прилагательное” (легко идущий), “существительное-глагол” (кошка ест), “существительное-существительное” ([разбить] вазу молотком). Правда, при этом стоит быть готовым к тому, что после внедрения всех этих данных программа “потолстеет” еще на 30-40 мегабайт. Но это и понятно - знания не могут ничего не занимать.

Третьим этапом будет обучение программы многопроходной обработке текстов. При этом она будет оставлять только те пары, которые кореллируют между собой. Например, программа будет должна уметь обработать кусок фразы из трех слов (А Б В) так, чтобы из всех возможных комбинаций пар синонимов А-Б и Б-В остались только те пары, в которых синонимы для слова Б встречаются в обоих наборах пар синонимов.

Правда, до сих пор остается открытым вопрос о том, как реализовать работу с парами слов. В случае с отдельно стоящими парами слов проблем нет - мы будем выделять эту пару целиком и предлагать для замены все возможные варианты пар. Но что делать, если у нас две пересекающихся пары? Как быть в таком случае? Как быть, если допустимые синонимы для второго слова не пересекаются в полученных после обработки наборах пар синонимов?

Как видите, пока что вопросов все еще больше, чем ответов, хоть я и размышляю над этими вопросами уже который месяц.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий