Вход:  Пароль:  
FreeSource: ТЗ/ЛингвистическиеИнструменты ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Линвистические инструменты


Оглавление документа

Вступление


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

О ситуации с инструментарием анализа и сравнения текстов


В книге Дена Гасфилда ``Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология'' СПб: Невский диалект, 1996.
(Оригинал: Dan Gusfield Algorithms on Strings, Trees and Sequences: Computer science and computational biology, Cambridge Univ. Press) описано то, как считали сходство в последовательностях ДНК. Эти же алгоритмы могут быть применены в лингвистике для обсчёта корпусов текстов, после необходимой адаптации.
Где-то рядом с главной страницей описания проекта darcs есть упоминание (не нашёл), что какой-то студентус пишет diff для документов в xml, но дело тут не в xml, а в сравнении текстов, в которых бывает переформатирование и переписывание.


Вообще все проблемы с переползанием слов упираются чуть ли не в теоретические ограничения: все известные мне алгоритмы сравнения строк (у Гасфилда и т. п.) основаны на понятии редакционной строки (операции вставки, удаления, замены), в которой нет перестановок. Перестановка — двухместная операция, так что вроде бы получается, что сравнение строк с перестановками — NP-полная задача. Со всеми вытекающими в виде отсутствия нормального diff для текстов, который, в действительности, сейчас нужен всем и ОЧЕНЬ СИЛЬНО.


Проблема при машинном сравнении текстов в том, что найденные различия получатся далеко не оптимальными и не будут совпадать с представлениями человека о том, что изменилось в тексте. Например, удалили из него запятую, поставили точку и большую букву в середине абзаца. diff вообще бесполезен, просто скажет, что строка изменилась, а дальше что — сам ищи. Vimdiff хитрее, но он скорее всего покажет, что строка изменилась с момента этой запятой, а дальше до конца строки — различия. Он не заметит, что просто предложение на два разбили. Есть подозрение, что чистыми математическими методами тут не догадаться про разбитое предложение, а нужны какие-то эвристики, связанные со структурой текста на естественном языке. Проблема, естественно, не только в предложениях, подобных случаев очень много.
Стоит посмотреть на разные лингвистические корпусы (например, корпус русского языка и на то, какие вокруг них написаны программы. Но вряд ли лингвисты ушли в алгоритмах много дальше биологов.


Кирилл Маслинский


Страницы, ссылающиеся на данную: ТЗ/ЛингвистическаяБиблиотека


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]