Как мы подбираем тексты для перефразирования

А как вообще собирают корпуса для автоматического перефразирования? Для этого можно использовать

  • разные переводы одних и тех же текстов (их нужно вручную подбирать, и данных будет не очень много),
  • произвольные тексты на похожие темы (их нужно предварительно классифицировать),
  • новостные тексты, описывающие одни и те же события (данных много, и они постоянно пополняются, но необходимо находить одинаковые события),
  • тексты из социальных сетей, описывающие одни и те же события (см. пред. пункт + специфика языка блогов накладывает сложности) и т.д.

Наиболее перспективным нам видится подход на основе новостных текстов (новые данные появляются ежедневно, новостные тексты относительно просто обрабатываются автоматически - есть надежда собрать корпус большого объема с хорошей точностью): он и был выбран для этого проекта. Корпуса для перефразирования собираются как на уровне предложений, так и на уровне отдельных фраз. Мы делаем это на уровне предложений: на таком корпусе впоследствии можно стандартными средствами (например, инструментами, которые применяются в статистическом машинном переводе) обучить систему автоматического перефразирования.

Итак, данные имеются. Как же отобрать из большого потока новостей синонимичные предложения?

Во многих англоязычных работах практикуют такой подход. Вначале отбираются заголовки статей разных изданий за один и тот же день (плюс-минус 2-3 дня). Действительно, разные издания в один и тот же день пишут об одних и тех же событиях, но разными словами - это как раз то, что нам нужно!

Теперь нужно придумать способ отсеять несинонимичные пары предложений из всех возможных пар-кандидатов.

А теперь небольшое отступление. Для английского языка существует собранный примерно десятилетие назад Microsoft Research Paraphrase Corpus, на котором обучают алгоритмы распознавания перефразирования. Кстати, вот здесь приведены результаты тестирования разных алгоритмов на этом корпусе. Лучшие результаты дает обучение с учителем, но у нас нет обучающих данных - что же делать?

В итоге решено было применить подход, аналогичный тому, что описан у S. Fernando and M. Stevenson (2008). Он демонстрирует неплохие результаты для английского языка и не требует предварительно размеченных данных, но использует WordNet. Вместо WordNet мы подключили словарь синонимов русского языка и добавили в итоговую метрику кое-что свое.

Так как же все-таки из предложений-кандидатов автоматически отбираются синонимичные пары?

Каждой паре предложений мы назначаем определенный балл, и чем ближе предложения друг к другу по смыслу (чем "синонимичнее"), тем выше должен быть этот балл. На итоговый балл в разной степени влияют такие признаки:

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

В итоговую базу для перефразирования попадают пары предложений, у которых "степень синонимичности" выше определенного порогового значения. Но среди них, конечно, все же попадаются разные или только отчасти похожие по смыслу предложения. Поэтому очень важно, чтобы их сходство оценил носитель языка. И именно поэтому нам очень нужна Ваша помощь :)