Больше перефразировок богу перефразировок: датасет для сиамской сети
Появилась идея, как получать много, очень много негативных примеров перефразировок для siamese network. причем с минимумом ручной работы или модерации.
Для этого берем результаты обработки текстов моим синтаксическим парсером. Много мегабайтов текстов, и много гигабайтов результатов в XML.
Обрабатываем их в C# программе (исходнички на гитхабе), которая применяет некоторые трансформации к синтаксическому дереву и гарантированно получает либо изменение семантики, либо синтаксически некорректное предложение. Для пересклонения существительных и прилагательных я, как обычно, использую .NET обертку для API грамматического движка с русской словарной базой.
Например, перестановка позиции предлога:
( Collapse )
Перестановка атрибутирующих прилагательных:
( Collapse )
Перестанова существительных в паттерне родительного падежа:
( Collapse )
Зачем нужны эти перефразировки?
Я рассчитываю, что они заставят кодирующую сетку сформировать такие фичи предлождения, которые учитывают синтаксические связи. Например, важно не наличие предлога, а консервативность связи предлога с объектом. Аналогично для прилагательных - сетка должна научится встраивать в итоговый вектор информацию о связи прилагательного и атрибутируемого существительного.
Кроме того, эти перефразировки заставляют сетку работать чуть лучше, чем bag-of-words модель, так как набор слов во всех случаях идентичный или совпадает до лемм.
Для этого берем результаты обработки текстов моим синтаксическим парсером. Много мегабайтов текстов, и много гигабайтов результатов в XML.
Обрабатываем их в C# программе (исходнички на гитхабе), которая применяет некоторые трансформации к синтаксическому дереву и гарантированно получает либо изменение семантики, либо синтаксически некорректное предложение. Для пересклонения существительных и прилагательных я, как обычно, использую .NET обертку для API грамматического движка с русской словарной базой.
Например, перестановка позиции предлога:
( Collapse )
Перестановка атрибутирующих прилагательных:
( Collapse )
Перестанова существительных в паттерне родительного падежа:
( Collapse )
Зачем нужны эти перефразировки?
Я рассчитываю, что они заставят кодирующую сетку сформировать такие фичи предлождения, которые учитывают синтаксические связи. Например, важно не наличие предлога, а консервативность связи предлога с объектом. Аналогично для прилагательных - сетка должна научится встраивать в итоговый вектор информацию о связи прилагательного и атрибутируемого существительного.
Кроме того, эти перефразировки заставляют сетку работать чуть лучше, чем bag-of-words модель, так как набор слов во всех случаях идентичный или совпадает до лемм.