Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 подскажите, способ сравнения строк, по неточному совпадению.  [new]
Nick-name
Member

Откуда:
Сообщений: 672
Здравствуйте! Хотелось бы услышать мнения туташних ученых профессоров.
Суть задачи, определение записи в базе, по частичному совпадению строки, например по 3-4 словам.
Пример:
предположим есть некая таблица
+-------------+-------------------------------------------------------------------------------------+-----------+
| idnew_table | value                                                                               | some_code |
+-------------+-------------------------------------------------------------------------------------+-----------+
|           1 | винни пух латентный гомосексуалист                                                  | aaa       |
|           2 | мама мыла раму                                                                      | bbb       |
|           3 | черный лучше чем синий                                                              | ccc       |
|           4 | И Ленин такой молодой, и юный Октябрь впереди.                                      | ddd       |


Вот. И в этой таблице примерно 300тыс записей такой ахинеи (на реальных данных она другая но суть таже).
Понадобилось, сувать в нее похожий бред (из другой таблицы), но беда в том, что вот этого some_code в другой таблице нет =(( и его нужно как-то отыскивать в уже имеющихся вариантах кодов.

Вопрос, если мне нужно вставить строчку - "черный лучше чем любой другой оттенок серого" как сделать так, чтоб по этой строке, в базе нашлось - "черный лучше чем синий". Левинштайн не подходит(очень уж медленно). Пробовал через SphinxSE но очень уж много мусора. Нужно, что-то наподобие гибрида IN и LIKE. Как показал ручной подбор 3-4 совпадения достаточно точно идентифицируют строчку с нужным кодом.
7 фев 20, 08:56    [22075291]     Ответить | Цитировать Сообщить модератору
 Re: подскажите, способ сравнения строк, по неточному совпадению.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20016
Левенштейн тут неприменим. In и Like - тоже.

Делишь фразы на слова. Составляешь таблицу уникальных слов. Формируешь таблицу соответствия фраза-слово. Делаешь то же с таблицей для вставки. А затем просто связываешь, считаешь количество совпадений, и оставляешь пары фраз, где это количество совпадений выше требуемого порога.
7 фев 20, 10:14    [22075333]     Ответить | Цитировать Сообщить модератору
 Re: подскажите, способ сравнения строк, по неточному совпадению.  [new]
Nick-name
Member

Откуда:
Сообщений: 672
Akina,

Формируешь таблицу соответствия фраза-слово. А это как?
7 фев 20, 13:44    [22075577]     Ответить | Цитировать Сообщить модератору
 Re: подскажите, способ сравнения строк, по неточному совпадению.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20016
Nick-name
Формируешь таблицу соответствия фраза-слово. А это как?

ИД Слово
1винни
2пух
3латентный
4гомосексуалист
5мама
6мыла
7раму
8черный
9лучше
10чем
11синий
12и
13ленин
14такой
15молодой
16юный
17октябрь
18впереди

ФразаИДСловоИД
11
12
13
14
25
26
27
38
39
310
311
412
413
414
415
416
417
418
7 фев 20, 14:57    [22075639]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить