Поиск подстроки (поиск нечетких/неполных соответствий)

Задачи, предполагающие пакетный поиск строк, содержащих один из заданных элементов:
  • при решении филологических задач:
    • поиск однокоренных слов в списке слов при наличии списка корней и создание таблицы вида корень vs однокоренное слово,
    • поиск словоупотреблений в тексте при наличии списка словоформ (или основ) и создание таблицы вида словоупотребление vs контекст употребления (контекстом может служить предложение или абзац);
  • при организации процесса  перевода:
    • оценка полезности присланных заказчиком словарных и справочных материалов для перевода текущего пакета файлов (загрузка словарных материалов в среду ТМ может оказаться трудоемкой, не менее трудоемким является поиск отдельных слов по неструктурированным словарным материалам; для этого разумно осуществить пакетный поиск слов из пакета на перевод на предмет того, встречаются ли они в словарных материалах, и только затем решать вопрос о целесообразности загрузки словарных материалов).
В отличие от поиска полных соответствий табличные представления данных без написания дополнительных программных модулей (например, в VBA – применительно к приложениям MS Office) не помогут. Необходимы другие решения. Из самых простых я бы предложил обращение к утилите xMarkup. Общие замечания о работе с этой утилитой можно посмотреть здесь.

Пример для рассмотренияСнова обратимся к песне Виктора Цоя «Звезда по имени солнце».
Предположим, что нам нужно сопоставить выявленным при решении этой задачи цветообозначениям контексты их употребления на уровне строки.

РешениеВоспользуемся утилитой xMarkup.
  1. Скопируем текст песни в файл INPUT.TXT в рабочей папке с утилитой XM.EXE.
  2. Вид скрипта – файл RE.PAR (для упрощения строкой для поиска возьмем не словоформу, а основу слова). [startEntity]
    бел
    желт
    красн
    сер
    [stopEntity]
    [startMarkup]
    @nl@line@tab@start@nl
    [Options]
    encoding = UTF-8
    ignoreCase = true

  3. Вид пакетного файла.xm -f input.txt -o. -p re.par
  4. Вызовем утилиту xMarkup с помощью сформированного файла BAT.
  5. Скопируем результат (из файла .INPUT.TXT) в MS Excel и отфильтруем строки с непустыми столбцами (для наглядности на рисунке они выделены желтым.
    Фильтрация в MS Excel.