Проверка на идентичность большого текста в Mysql

sunchess

Новичок
Проверка на идентичность большого текста в Mysql

Всех приветствую!
Проблема в следующем: есть скрипт для добовления статей. Все статьи записываются в бд mysql, поле mediumtext. Подскажите какие есть алгоритмы для того чтобы вычеслить уникальность добовляемого текста?
К примеру человек добовляет статью, а в базе уже есть , к примеру, на 98% аналогичная.
Так что просто на "=" или LIKE расчитывать нельзя.
Зарание спасибо.
 

Dreammaker

***=Ф=***
а что значит на 98% аналогичная? :) По идее сначала нужно это решить..
 

sunchess

Новичок
а что значит на 98% аналогичная? По идее сначала нужно это решить..
ну предположим сравниваем два одинаковых текста на разных сайтах, к примеру теги разные или изменили заголовок на одном
"Авто продажа в Москве" на другом "Продажа авто в Москве" :), вобщем примеров можно привести массу, но сам основной текст сильно не меняется :)

Есть одна идея брать несколько предложений из середины текта и сравнивать их, только на сколько эфективно это будет?..
 

Dreammaker

***=Ф=***
http://phpclub.ru/talk/showthread.php?s=&threadid=65326&highlight=soundex

это для размышлений.. :)
Я задумался уже было о подобном решении до прочтение этого треда, найденного через поиск, но это для пхп, а не MySQL..
Потом подумал и решение пришло, точнее намётки решения.. :)
1) Избавляемся от тегов (выбор пути реализации на вкус программера).
2) Проводим транслитерацию полученного текста.
3) Вычисляем ключ [m]metaphone[/m] для статьи.
4) Загоняем этот ключ в отдельное поле.
5) Далее при загонке Для вновь загоняемой статьи делаем п. 1,2,3 и проверяем насколько близки эти ключи.
Как реализовать п. 5, точнее проверить степень близкости.. не знаю.. :)
 

SunDrop

Помощник поисков. робота
А использование
http://ua.php.net/manual/ru/function.similar-text.php
не поможет?
 

Andreika

"PHP for nubies" reader
SunDrop
SELECT * FROM table
whille(mysql_fetch_assoc) {
if similar_text('text',$fromdb)...
}
? :)
 

Dreammaker

***=Ф=***
Andreika, SunDrop,
Я тоже об этом варианте (similar_text) думал. а если статей несколько 10 тыщ :)
Вряд ли в этом случае это так, но.. кто ж знает :)

update: ага, кажись об этом и разговор был в двух предыдущих постах, только я не въехал сразу.. :)
 

phprus

Moderator
Команда форума
sunchess
Посмотри эту страницу - http://forum.dklab.ru/php/heap/AlgorithmOfComparisonOfTexts.html - там обсуждался алгоритм сравнения текстов.
 

Фанат

oncle terrible
Команда форума
вообще-то, слово "идентичность" к теме данного обсуждения имеет весьма отдалённое отношение.
 

sunchess

Новичок
Dreammaker

Спасибо за ответ, подчерпнул из твоего топика многое для своего алгоритма :)

-~{}~ 26.03.06 12:47:

Фанат

если описать алгоритм "идентичности", то это будет Яндекс и у нас будет много денег :)
 

Фанат

oncle terrible
Команда форума
алгоритм идентичности описывать не надо.
его можно посмотреть в любой энциклопедии.
причём желательно это делать ДО того, как употреблять этот термин прилюдно.
 
Сверху