Я пытаюсь создать script, который находит соответствующий процент между моими строками таблицы. Например, моя база данных mySQL в продуктах таблицы содержит имя поля (indexed, FULLTEXT) со значениями, такими как
LG 50PK350 PLASMA TV 50" Plasma TV Full HD 600Hz
LG TV 50PK350 PLASMA 50"
LG S24AW 24000 BTU
Aircondition LG S24AW 24000 BTU Inverter
Как вы можете видеть, у всех из них есть одно и то же ключевое слово. Но первое имя и второе имя более похожи. Кроме того, у третьих и четвертых есть более похожие ключевые слова между ними, чем 1-й и 2-й.
В моей базе данных mySQL есть тысячи имен продуктов. Я хочу найти те имена, которые имеют более чем процент (допустим, 60%) сходства.
Например, как я уже сказал, первое, второе (и любое другое имя), совпадающее между ними с более чем 60%, будет отражено в формате группового стиля, чтобы сообщить мне, что эти продукты похожи. 3-й и 4-й и любой другой, имеющий более 60% соответствия, будут повторяться в другой группе, сообщая мне, что эти продукты соответствуют.
Если это возможно, было бы здорово повторить ключевые слова, удовлетворяющие всем сгруппированным совпадающим именам. Например, LG S24AW 24000 BTU - это ключевое слово, которое содержится в 3-м и 4-м имени.
В конце я создам список всех этих ключевых слов.
Теперь у меня есть следующий запрос (как предложил Дзитамаро)
Select t1.name, t2.name From products t1, products t2
который создает новое поле имени рядом со всеми другими именами. Извините, что я не знаю, как правильно это объяснить, но это то, что он делает: (Реальные значения - это названия продуктов, как указано выше)
Перед запросом
-name-
A
B
C
D
E
После запроса
-name- -name-
A A
B A
C A
D A
E A
A B
B B
C B
D B
E B
.
.
.
Есть ли способ с mySQL или PHP, который найдет мне совпадающие имена и извлеките ключевые слова, как описано выше? Просьба поделиться примерами кода.
Спасибо сообществу.