«Регулярное выражение для слов» (семантическая замена) - какой-нибудь пример синтаксиса и библиотек? - PullRequest
7 голосов
/ 23 октября 2008

Я ищу синтетические примеры или обычные методы для выполнения преобразований стиля регулярных выражений для слов вместо символов, учитывая процедурный язык.

Например, для отслеживания копирования можно создать документ с аналогичным значением, но с другим выбором слов.

Я хотел бы иметь возможность кратко определить эти возможные преобразования, которые я могу применить к текстовому потоку.

Например. от «fast существительное » до «fast существительное », но «иди быстро». не будет преобразован (без существительного впоследствии.
Или: «Алиса споет песню » на « песню будет петь Алиса»

Я ожидал бы, что это будет сделано в грамматических контролерах, таких как обнаружение пассивного голоса.

Реализация C # для такого рода языковой обработки была бы действительно опрятной, но я думаю, что большая часть любых усилий идет в поиске правильных правил - Сохранение правил ясным и понятным, кажется, нужно начинать.

Ответы [ 6 ]

3 голосов
/ 23 октября 2008
2 голосов
/ 05 ноября 2008

Если вы не привязаны к определенному языку, у Haskell есть грамматическая основа Аарне Ранты:

http://www.grammaticalframework.org/

, который явно предназначен для генерации синтаксических анализаторов и т. Д. Для обработки такого рода на естественном языке.

2 голосов
/ 23 октября 2008

Хорошее место для начала исследования - это «Word Net» - это словарь семантики, объединяющий слова по сходному значению, а также полезные способы записи отношений между словами.

Существует множество программных проектов, использующих корпус Word Net, одним из которых может быть то, что вам нужно.

0 голосов
/ 25 октября 2008

Мне не известны какие-либо синтаксисы, которые существуют для обработки английского языка, как вы обсуждали. Вам нужно будет создать свой собственный DSL, используя один из наборов инструментов (например, Word Net).

0 голосов
/ 23 октября 2008

Если вы хотите что-то более надежное для анализа / преобразования естественного языка, вы можете попробовать порт C # OpenNLP .

0 голосов
/ 23 октября 2008

Хорошее место для начала - SIL's CARLAStudio для его пакета "Computer Assisted Related Language Adaptation". В качестве альтернативы SIL's Adapt It . SIL обладает огромным спектром программного обеспечения для лингвистического анализа, в каком направлении вы движетесь. Это, безусловно, большой переход от регулярных выражений, которые не заботятся о смысле, к чему-то, что может обрабатывать лингвистический анализ.

...