Интернет магазин китайских планшетных компьютеров



Компьютеры - Регулярные выражения - Нечёткие регулярные выражения

22 января 2011


Оглавление:
1. Регулярные выражения
2. История
3. В теории формальных языков
4. Синтаксис
5. Разновидности регулярных выражений
6. Нечёткие регулярные выражения
7. Реализации



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

  • Невский
  • Несвк. просп.
  • Нев. порсект
  • наб. Конала Гребеедова

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

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

Существует небольшое количество библиотек реализующих механизм регулярных выражений с возможностью нечёткого сравнения:

  • TRE - бесплатная библиотека на С, использующая синтаксис регулярных выражений похожий на POSIX;
  • FREJ - open-source библиотека на Java, использующая Lisp-образный синтаксис и лишённая многих возможностей обычных регулярных выражений, но сосредоточенная на различного рода автоматических заменах фрагментов текста.


Просмотров: 6856


<<< Представление символов в регулярных выражениях
Символы-джокеры >>>