Программирование > Теория, алгоритмы и стандарты

Релеватность и поиск

<< < (2/5) > >>

AlieN:

--- Цитировать ---Greg:
AlieN мне кажется, что тогда нужно искать сначала полное совпадение фразы + позиция в строке, а затем уже слова по отдельности или фраза минус одно слово, минус два слова и т.д. - т.е. сделать переборку
--- Конец цитаты ---

На коде покажи, непонимаю тя.

Greg:
AlieN
как я тебе могу написать когда я ещё сам ниче не понимаю))) сначала нужно логику алгоритма выдумать, а потом уж код, а то телегу поперед лошади получается :)

AlieN:
Близость между словами можно искать опять же на позиции слов.
допустим
... FROM `products_words_in` AS `t1`,``products_words_in` AS `t2`
MIN(`t1`.`rate`-`t2`.`rate`) AS `nearing`
.....
ORDER BY `neadring` ASC

Greg:
AlieN
мне кажется, что CGVictor прав - лучше вытаскивать строки и работать с ними каким-нить языком (я делаю на пхп)

примерно так
1. достаем строку
2. обрабатываем её, создаем для неё показатель релевантности по отношению к строке запроса
3. заносим этот показатель вместе с ид документа (записи в таблице базы) в массив
(после обработки всех строк)
4. сортируем по показателю
5. выводим

единственное, что тут сложное - алгоритм определения релевантности

CGVictor:
Greg AlieN
Вот вам короткий алгоритм:

--- Код: ---$query = "какая-то фигня";
$text1 = "какая-то фигня очень часто попадается в незначащих темах на этом форуме";
$text2 = "спам - ненужная информация, какая-то фигня, чаще всего в почтовых системах";
function get_relevance($query,$text) {
  $tmp = substr($text,0,(strpos($text,$query)+strlen($query)));
  if($tmp!==false) {
      return similar_text($query,$tmp);
    } else {
      return 0;
    }
}
--- Конец кода ---

http://php.rinet.ru/manual/ru/function.similar-text.php
http://php.rinet.ru/manual/ru/function.levenshtein.php

И не напрягайте базу - это не ее задача.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии