Jump to content

TRE (вычисления)

ТРИ
Оригинальный автор(ы) Вилле Лаурикари [1]
Репозиторий
Написано в С
Тип Примерное соответствие строк
Лицензия Лицензия типа BSD из 2 пунктов
Веб-сайт лаурикари .сеть /три /

TRE — это с открытым исходным кодом библиотека для сопоставления шаблонов в тексте. [2] который работает как механизм регулярных выражений с возможностью приблизительного сопоставления строк . [3] Его разработал Вилле Лаурикари. [1] и распространяется по лицензии BSD, состоящей из двух пунктов .

Библиотека [4] написан на C и предоставляет функции, позволяющие использовать регулярные выражения для поиска по строкам входного текста. Основное отличие от других движков регулярных выражений заключается в том, что TRE может сопоставлять фрагменты текста приблизительным образом, то есть предполагая, что в тексте может быть некоторое количество опечаток .

TRE использует расширенный синтаксис регулярных выражений с добавлением «направлений» для приблизительного сопоставления предыдущего фрагмента. В каждом из таких направлений указано, сколько опечаток допускается в данном фрагменте.

Примерное соответствие [5] выполняется аналогично расстоянию Левенштейна , что означает, что «распознаются» три типа опечаток: [6]

Опечатка Пример Данные
вставка дополнительного символа регулировать опыт дополнительный л , дополнительный е
отсутствует символ в шаблоне выражение правил скучаю по тебе , скучаю по р
замена какого-то персонажа регулярное выражение ты о , s z

TRE позволяет указать стоимость для каждого из трех типов опечаток независимо.

В состав проекта входит утилита командной строки, представляющая собой повторную реализацию agrep .

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

  • он реализует обычные регулярные выражения, написанные для строгого соответствия; [3] [7]
  • программисты, знакомые с в стиле POSIX регулярными выражениями [4] не нужно много учиться, чтобы иметь возможность использовать TRE. [3]

Предсказуемое потребление времени и памяти

[ редактировать ]

Автор библиотеки утверждает [8] что время, затрачиваемое на сопоставление, растет линейно с увеличением длины входного текста, а потребность в памяти при сопоставлении постоянна и не зависит от ввода, а только от шаблона.

Другие функции, общие для большинства движков регулярных выражений, можно проверить в сравнительных таблицах движков регулярных выражений или в списке функций TRE на его веб-странице.

Пример использования

[ редактировать ]

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

  • (regular){~1}\s+(expression){~2} будет соответствовать вариантам словосочетания «регулярное выражение», в которых «регулярное» имеет не более одной опечатки, а «выражение» — не более двух; как в обычных регулярных выражениях" \s+" означает один или несколько пробелов, т.е.
    rogular    ekspression
    пройдет испытание;
  • (expression){ 5i + 3d + 2s < 11} будет соответствовать слову «выражение», если общая стоимость опечаток меньше 11, тогда как стоимость вставки установлена ​​на 5, удаление на 3 и замена символа на 2 - т.е. ekspresson дает стоимость 10.

Языковые привязки

[ редактировать ]

Помимо C, TRE можно использовать через привязки для Perl , Python и Haskell . [9] Это механизм регулярных выражений по умолчанию R. в [10] Однако если проект должен быть кроссплатформенным , для каждой из целевых платформ потребуется отдельный интерфейс.

Недостатки

[ редактировать ]

Поскольку другие механизмы регулярных выражений обычно не обеспечивают возможности приблизительного сопоставления, практически не существует параллельной реализации, с которой можно было бы сравнить TRE. Однако есть несколько вещей, которые программисты, возможно, захотят реализовать в будущих выпусках: [11]

См. также

[ редактировать ]
  1. ^ Jump up to: а б «R: Сопоставление с образцом для необработанных векторов» . MIT .edu .
  2. ^ «Тре для Windows» .
  3. ^ Jump up to: а б с «Использование нечеткого поиска с tre-agrep» . Журнал Линукс .
  4. ^ Jump up to: а б «тре 0.8.0-6 (x86_64)» . 7 июля 2020 г.
  5. ^ Андони, Александр; Краутгамер, Роберт; Онак, Кшиштоф (2010). Полилогарифмическая аппроксимация расстояния редактирования и сложности асимметричных запросов . IEEE симп. Основы информатики (FOCS). arXiv : 1005.4033 . Бибкод : 2010arXiv1005.4033A . CiteSeerX   10.1.1.208.2079 .
  6. ^ «Веб-страница TRE — синтаксис регулярных выражений» .
  7. ^ «Tre-agrep обладает всеми функциями grep, но также может работать неоднозначно или нечетко»
  8. ^ "Сайт-страница TRE - О компании" .
  9. ^ "Сайт-страница TRE - Часто задаваемые вопросы" .
  10. ^ «Регулярные выражения, используемые в R» .
  11. ^ Трофимович, Уля (2019). «Тегированные детерминированные конечные автоматы с прогнозом вперед». arXiv : 1907.08837 [ cs.FL ]. практические улучшения..алгоритм Лурикари, в частности..
[ редактировать ]

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 287d1cc7f238783700c7904b3943bebb__1716765180
URL1:https://arc.ask3.ru/arc/aa/28/bb/287d1cc7f238783700c7904b3943bebb.html
Заголовок, (Title) документа по адресу, URL1:
TRE (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)