На вход подается строка типа $str = 'Абтомобильн ый промышленность представила'.
Строка логически не правильна 'Абтомобильн ый промышленность' .
Имеется база с предложениями (правильные предложения, т.е обычные предложения которые логически правильно построен).
Задача состоит в том, что бы строку $str сравнить с предложениями и если будет неявное,но самое ближайшее сходство, типа " Абтомобильный промышленность представила "~ " Абтомобильная промышленность представила" , заменить на строку из правильного предложения т.е на " Абтомобильная промышленность представила".
Сравнивать каждое предложение со строкой бессмысленно поэтому все делается в 2 этапа.
1 - этап . С помощью ключевого слова (на данном примере ключ. слово Абтомобильн ый) делается выборка предложений, где есть примерно идентичное слово.(сравнение делается на основе similar_text() ).
2 этап. После выборки идет сравнение строки $str и слов в предложении. Если есть неявное, но близкое сходство по similar_text(), то идет замена слова.
Вот собственно вся задача которую решаю.
Сейчас стал вопрос на Первом этапе, с выборкой предложений по ключевому слову.
Выбор ключевого слова происходит по принципу самого длинного слова в конструкции.
Сейчас все реализовано банально, т.е по средствам одного ключевого слова и прогона его по всей БД. Но чем больше становиться БД тем дольше становиться процесс поиска. (Отредактировано автором: 09 Декабря, 2013 - 18:28:40)
|