erniesto77
@erniesto77
oop, rb, py, php, js

Как в SQL сравнить строки не учитывая стоп-слова?

Есть список стоп-слов, которые не нужно учитывать при сравнении предложений, пример:
'концерт'
'группа'
'группы'
'альбом'
'альбома'
'песни'
'презентация'


При сравнении названий концертов, нужно чтобы вот такие фразы можно было идентифицировать как один и тот же концерт:
'Группа ZebraHead'
'Песни группы ZebraHead'
'ZebraHead'
'Концерт группы ZebraHead'
'ZebraHead. Презентация альбома'


В таблице тысячи названий концертов и среди них есть похожие названия, которые нужно выявить и объединить присвоив этим строкам group_id (наименьший идентификатор в группе).
Пробовал функцию Левенштейна, но в таблице много строк и она работает очень медленно, а иногда просто зависает.
  • Вопрос задан
  • 214 просмотров
Пригласить эксперта
Ответы на вопрос 1
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
Может проще искать по общему ZebraHead?
`title` like '%ZebraHead%'

Если текст не длинный (только заголовки):
- создать таблицу со словами и соответствующему им id.
- выкинутть от туда стоп-слова путем пересечения таблиц.
- сделать подмены ошибок, транслитераций, вариаций.
- сгрупировать по словам.

Или воспользуйтесь опытом поисковых лингвистических анализаторов статья вам в помощь : https://habrahabr.ru/post/114997/
но быстро не будет.

P.S. Но я думаю, что нужно слегка поменять архитектуру.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы