![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Digit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 3.7.2005 Репутация: нет Всего: нет |
Доброго времени суток!
Имеется база данных MySQL, в которой хранятся строки. В самой базе 2 таблицы: первая (основная) для постоянного хранения строк, вторая для хранения строк, которые добавили посетители сайта для модерации. Нужно: выделять модератору новые строки (из второй таблицы), которые имеют "похожие" строки в основной (первой) таблице Пробовал решить задачу вычисляя расстояние левенштейна между каждой строкой из основной таблици и кажной из второй, все срубается серваком довольно быстро. Подскажите как решить эту задачку. Возможна реорганизация базы. |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
во-первых, имеются ввиду слова или целые фразы
а во-вторых, в чём схожесть строк? банальное расхождение в наборе символов /не те символы, да не на тех позициях/ или всё же смысловое расхождение? допустим разные окончания? |
|||
|
||||
Digit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 3.7.2005 Репутация: нет Всего: нет |
1) вот пример 2) расхождения: как минимум грамматические и пунктуационные ошибки, новые строчки (например четверостишье один раз написано просто в строку, другой раз как положено) + присутствие/отсутствие других символов (именно символов. не букв) Это сообщение отредактировал(а) Digit - 2.9.2009, 00:13 |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Digit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 3.7.2005 Репутация: нет Всего: нет |
IZ@TOP, спасибо за статью, но на мой взгляд там не выйдет с помощью этого поиска найти id строки в основной базе "похожей" на новую строчку.
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Все зависит от того, что ты имеешь ввиду под "похожестью". -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: нет Всего: 3 |
||||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Как на счет этого http://ua.php.net/manual/en/function.pspell-suggest.php ? Вообще я даже на sphinxsearch видел обсуждение поиска с использованием soundex. Думаю, если погуглить в нужном направлении, можно что-то интересное найти.
Хотя я до сих пор не понимаю, что конкретно нужно автору ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Digit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 3.7.2005 Репутация: нет Всего: нет |
Вот пример "похожих" строк:
1) "Я счастлива! У меня есть я" = "Я счастлив, у меня есть я" (разные окончания + разная разбивка на предложения) 2) "Не бойтесь совершенства.\n Оно вам не грозит.\n //Дали" = "Не бойтесь совершенства. Оно вам не грозит.\n Дали ©" (по разному стоят переносы строк + разные символы) 3) "Не бойся своих желаний! Бойся моих!" = "Не бойся желаний своих! Бойся моих!" (перестановка слов) Нужно вылавливать "похожие" строки с различними вариантами смешения примеров 1, 2 и 3. soundex и metaphone не очень хорошо работают со строками, особенно длинными. Я думаю, что надочислять для строки какое то значение на подобие soundex или metaphone и хранить его в базе вместе со строкой. Это сообщение отредактировал(а) Digit - 2.9.2009, 23:35 |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Digit, а чем, собственно sphinx не подошел под эту задачу? Он умеет искать по нормализованым словам, по целым фразам и при этом поиск релевантный и полностью вписывается в задачу.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 0 Всего: 140 |
Господа некрофилы, смотрите пожалуйста на дату последнего сообщения (для особо одаренных - 3.9.2009). Пол года прошло, тема не актуальна!
-------------------- Amazing ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |