|
|
|
|
|
для: serebrus
(05.03.2009 в 15:51)
| | Тут можно посоветовать при добавлении новой темы разбивать её название на слова (осмысленные, выкидывая предлоги, частицы и т.д.). Дальше эти слова добавлять в т.н. индекс (обычная таблица, куда заносится слово и id тем, где это слово встречается).
Уже созданные темы можно прогнать задним числом и добавить слова в индекс.
При создании темы шерстим индекс и ищем совпадения. А так как с каждым словом ассоциированы id тем, то вывести их несложно. | |
|
|
|
|
|
|
|
для: Axxil
(05.03.2009 в 15:35)
| | Я понял тебя, да ты прав, я привел пример (про нахождении похожих книг), но самом деле, т.е. у меня такой случай: есть система типа форума.
Я хотел чтоб, при добавлении нового вопроса, до написании ответа кем либо, система выводила те ответы которые их вопросы наиболее "ПОХОЖИЕ" добавленному вопросу.
В моем случае нелегко определить ключевое слово среди слов текста вопроса. | |
|
|
|
|
|
|
|
для: Axxil
(05.03.2009 в 15:35)
| | Я понял тебя, да ты прав, я привел пример (про нахождении похожих книг), но самом деле, т.е. у меня такой случий: есть система типа форума.
Я хотел чтоб, при добавлении нового вопроса, до написании ответа кем либо, система выводила те ответы которые их вопросы наиболее "ПОХОЖИЕ" добавленному вопросу.
В моем случае нолегко определить ключевое слово среди слов текста вопроса. | |
|
|
|
|
|
|
|
для: serebrus
(05.03.2009 в 14:56)
| | Много слов может быть?
А вообще механизм тегов (меток) не зря придумали. При вводе, например, книги в базу явно указывается её жанр, автор и т.д. в отдельных полях как раз для того чтобы потом можно было по-вякому группировать и находит похожие.
Если слов в поле name немного (до 5-ти) и таких меток нет, можно попробовать написать скрипт, который эти метки из названий вытащит.
Например так: вытаскиваем название, разбиваем его по словам, выкидываем предлоги, частицы и прочий мусор. Составляем из слов всевозможные комбинации и ищем эти комбинации по базе. В зависимости от количества совпавших слов в названиях получаем "степень похожести", которую тоже можно как-то учитывать.
Понятно, что делать это на лету нельзя. Нужно заранее прогнать скрипт и сохранить результаты для вывода. | |
|
|
|
|
|
|
|
для: Axxil
(05.03.2009 в 14:31)
| | Друг, среди нескольких слов (т.е. текст) как определишь, который из ник ключевое? | |
|
|
|
|
|
|
|
для: serebrus
(05.03.2009 в 14:02)
| | А что мешает выделить из поля name ключевые слова и по ним провести обычный поиск `bookname` like '%keyword%'? | |
|
|
|
|
|
|
| Привет народ форума.
По моему многие знают или встречались с таким случаем как, при поиске книги на сайте, система показывает книг удовлетворяющие запрос а также список похожих книг.
Ну в принцпе это понятно, (список дополнительных книг составляется с помощю запроса удовлетворяющий клечевое слово, т.е. типо этого: ... `bookname` like '%keyword%').
Но я хотел бы узнать, если ключевое слово нет, то можно ли найти всех похожих записей из базы данных. Подробно говоря, если имеется текстовое поле 'name', можно ли найти схожих записей по этому полю? | |
|
|
|
|