Виджет или поле "Похожий контент"

Виджет или поле "Похожий контент". Чего не хватает?

 
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Была тут подобная тема, но пока делал свою версию поля и виджета, тему порешили. Видимо, надо шустрее быть.
В общем, есть одно "решение". Сделал его на своём демо -сайте (логин/пароль - [email protected]/moderator). Обозвал "похожий контент" (Искать по этой фразе в админке: в поле контента, виджетах и компонентах). По сути, создаётся набор фильтров (по аналогии с наборами типов контента) и выводится в нужном месте. На главной вывел сгруппированный виджет, а в записях новостей и статей отдельные виджеты. Контент фильтруется по настройкам и выводится рандомно. Отбор идёт по формуле "Количество выводимых записей" умножено на 2 и добавлена одна запись. Другими словами если указано Количество выводимых записей = 2, то отбираются 5 записей и из них рандомно выводится 2, если указано Количество выводимых записей = 10, то отбирается 21 запись и из них выводятся 10. Если указано 4 записи, а доступно только 4 и меньше, то выведет их в случайном порядке.

ЗЫ. Забыл спросить - чего этому компоненту ещё не хватает?
Редактировалось: 1 раз (Последний: 10 февраля 2015 в 14:46)
Посетитель
small user social cms
Сообщений: 40
Контент отбирается не похожий на исходную статью. Возможно, нужно фильтровать массив записей, минимум по тегам, а в идеале по ключевым словам в заголовке или по словам, которые еще часто употребляются в тексте. В данном варианте, думаю, виджет мало отличается от виджета "Случайные записи".
Редактировалось: 1 раз (Последний: 10 февраля 2015 в 16:48)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 279
Открыл новость "Инвестиции для чайников: куда вкладывать?" и в похожих новостях вывелась она же. Наверное не стоит выводить ту же самую новость в похожих.
Посетитель
small user social cms
Медаль
Сообщений: 279
Как вариант можно сделать вывод в две колонки. В одной колонке выводить похожий контент.
Во второй последний добавленный контент за определенный период в случайном порядке.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
andrey:
минимум по тегам
По тегам можно фильтровать записи, ещё по просмотрам, по комментариям и по определённым полям. По ключевикам пока думаю, как их извлечь из основной записи и применить в фильтре. Ведь в основной записи их может быть 5-10 слов через запятую, может ограничить дело первыми двумя - тремя и искать по паре или по отдельности каждое? А если выводить в виджете вне записи контента, - в списке или на главной, то действительно получается подобие виджета "случайные записи".

qwest:
Наверное не стоит выводить ту же самую новость в похожих.
Тоже обратил на это внимание, в случае с записью можно это решить, а вот при выводе в списке, придётся подумать.
Посетитель
small user social cms
Медаль
Сообщений: 279
Вот на главной виджет выводит похожие статьи, новости и т.п. а на что похожие?
Посетитель
small user social cms
Сообщений: 40
Loadырь:
может ограничить дело первыми двумя - тремя и искать по паре или по отдельности каждое?

Ка вариант, можно попробовать сравнивать тексты (через similar_text, levenshtein, soundex) и вычислять процент схожести

Код PHP:
  1. similar_text($text1,$text2,$percent);
  2. if ($percent > 50) то $text2 - это похожая запись;
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Тоже думал про реализацию дополнения для показа похожих материалов. Остановился на варианте применения алгоритма шинглов, т.к. считаю данное решение наиболее интересным и самое главное более "похожим" по качеству выводимых результатов)))
ссылки в тему:
http://habrahabr.ru/post/65944/
http://utext.rikuz.com/
http://www.cyberforum.ru/php-database/thread649707.html
http://habrahabr.ru/company/ivi/blog/247813/

Как будет свободное время, если ничего подобного никто не реализует, буду пилить сам))
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
qwest:
а на что похожие?
на самих себя.
andrey, Val, спасибо, буду искать оптимальный вариант.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Val, почитал про «Алгоритм Шинглов». Всё таки, немного другое у него целевое назначение. Его используют для сравнения текстов с выдачей некоторого процента схожести, обычно в поисковых системах для отсеивания дубликатов. Работает хорошо, но я полагаю, что разбивать каждый заголовок, ключевые слова и текст каждой записи из базы на шинглы и потом их сравнивать с нужной фразой - делать это на лету - накладно на производительности. Поэтому пока остановился на полнотекстовом поиске по title, seo_keys и content. Осталось накидать контента на демо сайт, чтоб проверить, как отрабатывает. У кого нибудь есть дамп старого ненужного контента (пара сотен статей, уникальность мне ни к чему) или какой-нибудь парсер на пару дней, чтоб не затягивать это на пару лет smile . А то с шестью статьями и десятью новостями, как-то не интересно.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Накидал несколько новостей тут. Добавил полнотекстовый поиск по заголовкам, ключевым словам и основному тексту. Теперь компонент получает ключевые слова той страницы, где установлен виджет или поле и ищет их в зависимости от настроек по заголовкам, ключевым словам и/или основному тексту в тех новостях, что доступны после применения фильтров. Фильтрами можно сократить или переопределить варианты выдачи. В новостях ключевые слова автоматически заполнялись, поэтому там полная каша. И тем не менее связи уже прослеживаются. Или мне это показалось? andrey, что скажете?
Посетитель
small user social cms
Медаль
Сообщений: 279
Пока не очень понятно. По категориям бы раскидать новости, т.е. заполнить несколько категорий.
И вопрос по кэшированию оно будет?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
qwest:
И вопрос по кэшированию оно будет?
Кэширование есть, при включении в админке в настройках сайта, количество запросов к базе сокращается чуть меньше, чем вдвое. Но надо продумать ещё, что именно кешировать и как потом это ограничивать по правам доступа. Для пользователя с правами админа разници нет никакой. Сейчас пользователь заходит на страницу, происходит выборка материала согласно его уровню доступа, эти записи и кэшируются, и выдаются следующим пользователям во время жизни кэша. А это не совсем верно. Если у пользователя мало прав, то и кэш будет маленьким и пользователи с расширенным набором прав не увидят доступных им записей. И наоборот гости смогут увидеть наборы из "привата". Поэтому с кэшем ещё работаем. Если будут идеи - делитесь.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Раскидал новости по категориям.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 953
Хорошее решение. А когда можно будет скачать компонент?
Все идет хорошо, только мимо...
Web-Studio «PAL»
БЕСПЛАТНАЯ РАСКРУТКА САЙТОВ
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.