Эффективный алгоритм для поиска всех ключевых слов в тексте

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

Допустим, строка поиска может содержать текст «schw.», «Schwa.» и «шварц». У меня есть три ключевых слова, которые все сводятся к тексту «schwarz».

Теперь я ищу эффективный способ найти все ключевые слова без создания строки. Содержит (ключевое слово) для каждого отдельного ключевого слова.

Пример данных:

H-Fuss ahorn 15 cm/SH48cm
Metall-Fuss chrom 9 cm/SH42cm
Metall-Kufe alufbg.12 cm/SH45c
Metall-Kufe verchr.12 cm/SH45c
Metall-Zylind.aluf.12cm/SH45cm
Kufe alufarbig
Metall-Zylinder hoch alufarbig
Kunststoffgl.schw. - hoch
Kunststoffgl.schw. - Standard
Kunststoffgleiter - schwarz für Sitzhoehe 42 cm

Примеры ключевых слов (ключ, значение):

h-fuss, Holz
ahorn, Ahorn
metall, Metall
chrom, Chrom
verchr, Chrom
alum, Aluminium
aluf, Aluminium
kufe, Kufe
zylind, Zylinder
hoch, Hoch
kunststoffgl, Gleiter
gleiter, Gleiter
schwarz, Schwarz
schw., Schwarz

Пример результата:

Holz, Ahorn
Metall, Chrom
Metall, Kufe, Aluminium
Metall, Kufe, Chrom
Metall, Zylinder, Aluminium
Kufe, Aluminium
Metall, Zylinder, Hoch, Aluminium
Gleiter, Schwarz, Hoch
Gleiter, Schwarz
Gleiter, Schwarz
9
задан VVS 18 November 2010 в 11:58
поделиться