powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Алгоритм по выборке
4 сообщений из 4, страница 1 из 1
Алгоритм по выборке
    #38437709
aleksey_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Уже долгое время бьюсь над тем как решить такую задачку... быть может поможете?:) буду благодарен...
в общем дело такое:

есть некие тексты, который хранится в таблице table1:
id txt
1 яблоки - очень вкусные фрукты
2 груши - тоже ничего
3 вредно пить пиво, а иногда полезно

есть некая табличка table2:
key value
яблоки фрукт который растет на яблоне
груши фрукт который растет на груше
пиво вредный напиток
пить употреблять вовнутрь

так вот, хочется наваять такой алгоритм, который будет делать следующее: дергать описание слов из table1 и сопоставлять (ставить description) для слов, встречающихся в поле txt таблицы table1. как бы вы это сделали наиболее оптимально?
...
Рейтинг: 0 / 0
Алгоритм по выборке
    #38437735
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleksey_sqlВсем привет!
Уже долгое время бьюсь над тем как решить такую задачку... быть может поможете?:) буду благодарен...
в общем дело такое:

есть некие тексты, который хранится в таблице table1:
id txt1 яблоки - очень вкусные фрукты2 груши - тоже ничего3 вредно пить пиво, а иногда полезно

есть некая табличка table2:
key valueяблоки фрукт который растет на яблонегруши фрукт который растет на грушепиво вредный напитокпить употреблять вовнутрь

так вот, хочется наваять такой алгоритм, который будет делать следующее: дергать описание слов из table1 и сопоставлять (ставить description) для слов, встречающихся в поле txt таблицы table1. как бы вы это сделали наиболее оптимально?
"оптимально" - это когда к table1, будет по 1:М "привязанна" табличка с разбивкой фразы по словам

а так, на том что есть :
Код: sql
1.
2.
3.
select t1.id, t1.txt, t2.value as description
from table1 t1 inner join table2 t2 
on concat('%',t2.key,'%') like t1.txt


или так
Код: sql
1.
2.
3.
4.
select t1.id, t1.txt, group_concat(t2.value) as description
from table1 t1 inner join table2 t2 
on concat('%',t2.key,'%') like t1.txt
group by t1.id, t1.txt 


в зависимости от того, что имеется в виду под "описанием"
...
Рейтинг: 0 / 0
Алгоритм по выборке
    #38437744
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кхе,
наоборот, конечно :)

fix
qwerty112
Код: sql
1.
2.
3.
select t1.id, t1.txt, t2.value as description
from table1 t1 inner join table2 t2 
on t1.txt like concat('%',t2.key,'%') 


или так
Код: sql
1.
2.
3.
4.
select t1.id, t1.txt, group_concat(t2.value) as description
from table1 t1 inner join table2 t2 
on t1.txt like concat('%',t2.key,'%') 
group by t1.id, t1.txt 
...
Рейтинг: 0 / 0
Алгоритм по выборке
    #38437836
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это - самое простое решение. Оно не обрабатывает случаи, когда термин является подстрокой другого термина - правда, будет несколько неожиданно, если, к примеру, к фразе про оптовол окно будет присовокуплена поясняшка, что такое окно?
Так что либо следует выполнять предварительное рафинирование текста (унифицировать все разделители, добавлять их в начало и конец, искать слово с ними и в начале, и в конце), либо, как уже правильно замечено, заранее разбить фразы на слова.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Алгоритм по выборке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]