Для проекта нужен лексический анализатор, выполняющий следующие функции:
1) выделение из текста (язык не важен) задаваемых пользователем "терминов"
2) поиск соответствующего термину значения
Могу привести пример разбора:
Входная строка
Кольцо выполнено из золота 585 пробы традиционного розового оттенка и украшено 1 белой жемчужиной в форме эллипса диаметром 8-8,5 мм и 4-мя фианитами. Производство: Москва (Россия).
Пользователем заданы заранее термины "Кольцо", "проба", "золото", "жемчуг", "диаметр", "фианит" и размерность "мм".
Конечный результат разбора должен содержать ряд терминов, части из них должно быть поставлено в соответствие числовое значение и размерность:
- Кольцо
- золото
- проба=585
- жемчуг
- диаметр=8-8,5 [мм]
- фианит
Весьма желательно задавать правила таким образом, чтобы происходила группировка терминов:
жемчуг => диаметр=8-8,5 мм
золото => проба=585
Мой первый вариант разбора работает, но без группировки - и обнаруживается слишком много частных случаев, когда соответствие "термин-значение" находится неправильно. К тому же, необходимо анализировать описательный текст из любой сферы (скажем, "1-комн. кварт., м. Беляево, 10 мин. пеш., Островитянова ул, д. 53-2, 41/18/10, свободна, полн. меблиров. (кухня дуб, мяг. меб. и пр.), отлич. ремонт и техника (холод., стир. маш.), застекл. лодж. 6 м, тамбур с ж/д, консьерж, закр. паркинг аренд. маш/место")
Что порекомендуете по теме, камрады?