Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#101 2012-02-10 18:38:22

Сокол
Пользователь
Откуда: Красноярск
Зарегистрирован: 2009-05-23
Сообщений: 226
Рейтинг :   
Профиль  Вебсайт

Re: similar :: Похожие новости

Было бы неплохо сделать возможность исключать нежелательные теги.
Просто, некоторые теги могут очень часто повторяться, но не иметь важности для новости.

Неактивен

 

#102 2012-02-10 19:25:17

easmik
Модератор
Откуда: Анталья
Зарегистрирован: 2011-02-01
Сообщений: 999
Рейтинг :   37 
Профиль  Вебсайт

Re: similar :: Похожие новости

Их тогда можно вобще не указывать раз они не имеют особого значения.


Все сайты, что могут быть сделаны на ng cms, должны быть сделаны на ng cms.

Расширив границы сознания, мы открываем новые горизонты жизни.

Неактивен

 

#103 2012-04-18 19:59:41

legenda
Пользователь
Откуда: ua
Зарегистрирован: 2009-12-22
Сообщений: 2133
Рейтинг :   39 
Профиль

Re: similar :: Похожие новости

и все-таки кто может доделать плагин, надо
1. чтоб новости выводились по дате (в даном варианте плагин просто ужасно тупой)
2. желательно работоспособность не только в news.full.tpl но и в main.tpl

Неактивен

 

#104 2012-10-11 19:55:59

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

Всем доброго дня.

Установлена NGCMS 0.9.3 Changeset 1058 + плагин similar 0.06.

Пробую "Режим вызова" ставить в "Короткая" и "Полная". Ставлю "Короткая", выводятся только заголовки, ставлю "Полная" - страница новости вообще перестает загружаться, выдает следующее:

NGCMS Runtime error: Allowed memory size of 36700160 bytes exhausted (tried to allocate 77 bytes)
[ 1]: Allowed memory size of 36700160 bytes exhausted (tried to allocate 77 bytes)

Stack trace
Line #    File name
103    сайт.ru/engine/plugins/similar/similar.php

"Интеграция с новостными плагинами" установлено в "Да".

И подскажите пожалуйста, есть ли все-таки планы сделать вывод последних по дате новостей при равных условиях похожести по тегам?

Отредактированно Pavel555 (2012-10-11 20:00:47)

Неактивен

 

#105 2012-10-11 20:11:44

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: similar :: Похожие новости

Памяти не хватает на сервере.

Неактивен

 

#106 2012-10-11 22:50:56

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: similar :: Похожие новости

Pavel555, какой-то очень странный косяк.
Пишет, что не хватает памяти, но при этом израсходовано 35Mb.
Проблема возникает только при включении similar?
Какое двиг указывает потребление памяти с отключенным similar?

Неактивен

 

#107 2012-10-12 05:25:20

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

Да, глюк с незагрузкой страницы возникает только при при включеном similar и "Режим вызова": "Полная".
В режиме "Короткая" страница новости загружается, но в похожих статьях только заголовки.

vitaly написал:

Какое двиг указывает потребление памяти с отключенным similar?

Как это посмотреть?

Неактивен

 

#108 2012-10-12 09:32:06

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: similar :: Похожие новости

Pavel555, переменная {memPeakUsage} в main.tpl
Сайт установлен на хостинге или ты на локальной машине экспериментируешь?
Если на хостинге, то кидай в личку доступы (ftp + логин админа на сайте), посмотрю. Очень похоже на какую-то петлю.... кстати, ты ведь не включал include'ы в шаблонах? smile

Неактивен

 

#109 2012-10-12 10:21:06

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

{memPeakUsage}:
similar отключен: 4.592
similar включен: 4.736

Сайт на хостинге. Доступ кинул. Поясни пожалуйста, что значит "включать include'ы в шаблонах?"

И что насчет отбора самых свежих новостей при равном подобии по тегам? Есть в планах?

Неактивен

 

#110 2012-10-13 02:17:25

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: similar :: Похожие новости

Pavel555, нашел ошибку в плагине - он вызывал сам себя и таким образом мог скушать любое кол-во памяти sad
Обновил версию до 0.07 у тебя на сайте и в SVN

И что насчет отбора самых свежих новостей при равном подобии по тегам? Есть в планах?

В планах-то есть, но ведь полное соответствие по тегам бывает редко. Поэтому нужно учитывать как-то либо минимальное кол-во совпадений чтобы новость считать "похожей", либо какой-то другой алгоритм придумывать.

Неактивен

 

#111 2012-10-13 06:04:01

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

Спасибо! Ошибка исчезла, но разницы между "Экспорт", "Полная" и "Короткая" так и не наблюдается. Во всех случаях выводится только заголовок похожей статьи.

vitaly написал:

полное соответствие по тегам бывает редко

Позволю себе не согласиться. Часто новость имет 2-3 тега, которые отражают самую суть. Например, в заметке про территориальный спор Китая и Японии будет 2 тега: Япония и название спорного объекта. Китай не будет тегом, т.к. весь сайт посвящен Китаю. Т.о., тут 2 тега, плодить большее количество тегов для такой новости - излишне. Далее, проходит месяц, два, в течение этого времени мы освещаем развитие ситуации в последующих новостях. Теги остаются те же. И вот тут очень неплохо было бы выводить в похожих самые последние статьи по данным тегам, а не статьи 2-месячной давности.

Неактивен

 

#112 2012-10-13 06:54:16

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

Где меняется надпись "Понравилась тема? Посмотрите эти:"?
Сделал поиск по всем файлам сайта, нигде не нашел.

Неактивен

 

#113 2012-10-13 16:37:05

legenda
Пользователь
Откуда: ua
Зарегистрирован: 2009-12-22
Сообщений: 2133
Рейтинг :   39 
Профиль

Re: similar :: Похожие новости

Pavel555, я уже больше года как писал что надо віводить новости по дате а не статьи 2-месячной или 3 годовой давности когда есть вчерашние

Неактивен

 

#114 2012-10-13 18:04:02

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: similar :: Похожие новости

Pavel555 написал:

Где меняется надпись "Понравилась тема? Посмотрите эти:"?
Сделал поиск по всем файлам сайта, нигде не нашел.

\engine\plugins\similar\tpl\similar.tpl

Неактивен

 

#115 2012-10-13 18:05:50

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: similar :: Похожие новости

legenda написал:

Pavel555, я уже больше года как писал что надо віводить новости по дате а не статьи 2-месячной или 3 годовой давности когда есть вчерашние

желательно с выбором

Неактивен

 

#116 2012-10-13 18:15:46

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

legenda написал:

Pavel555, я уже больше года как писал что надо віводить новости по дате а не статьи 2-месячной или 3 годовой давности когда есть вчерашние

Да, я видел. Поддерживаю эту необходимость.

irbees2008 написал:

\engine\plugins\similar\tpl\similar.tpl

Вот его содержимое:
<div style="border: #DDDDDD 1px solid; margin-bottom: 5px;">
<div style="background: #DDDDDD;">Похожие новости:</div>
<table border="0" width="100%" cellspacing="0" cellpadding="0" style="margin-left: 3px;">
<tr><td>
{entries}
</td></tr>
</table>
</div>

Но все равно выводится "Понравилась тема? Посмотрите эти:"

Кэш чистил.

Неактивен

 

#117 2012-10-13 18:27:49

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: similar :: Похожие новости

Pavel555 написал:

legenda написал:

Pavel555, я уже больше года как писал что надо віводить новости по дате а не статьи 2-месячной или 3 годовой давности когда есть вчерашние

Да, я видел. Поддерживаю эту необходимость.

irbees2008 написал:

\engine\plugins\similar\tpl\similar.tpl

Вот его содержимое:
<div style="border: #DDDDDD 1px solid; margin-bottom: 5px;">
<div style="background: #DDDDDD;">Похожие новости:</div>
<table border="0" width="100%" cellspacing="0" cellpadding="0" style="margin-left: 3px;">
<tr><td>
{entries}
</td></tr>
</table>
</div>

Но все равно выводится "Понравилась тема? Посмотрите эти:"

Кэш чистил.

адрес сайта ,глянуть надо
или сам посмотри в news.full

Отредактированно irbees2008 (2012-10-13 19:30:47)

Неактивен

 

#118 2012-10-13 20:33:35

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

С надписью разобрался, я смотрел в /engine/plugins/similar/tpl/, а надо было - в /templates/шаблон/plugins/similar/.

Неактивен

 

#119 2012-11-13 19:06:43

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

vitaly написал:

И что насчет отбора самых свежих новостей при равном подобии по тегам? Есть в планах?

В планах-то есть, но ведь полное соответствие по тегам бывает редко. Поэтому нужно учитывать как-то либо минимальное кол-во совпадений чтобы новость считать "похожей", либо какой-то другой алгоритм придумывать.

Pavel555 написал:

vitaly написал:

полное соответствие по тегам бывает редко

Позволю себе не согласиться. Часто новость имет 2-3 тега, которые отражают самую суть .... проходит месяц, два, в течение этого времени мы освещаем развитие ситуации в последующих новостях. Теги остаются те же. И вот тут очень неплохо было бы выводить в похожих самые последние статьи по данным тегам, а не статьи 2-месячной давности.

legenda написал:

Pavel555, я уже больше года как писал что надо віводить новости по дате а не статьи 2-месячной или 3 годовой давности когда есть вчерашние

Виталий, фича действительно нужная. Терпеливо ждем smile

Неактивен

 

#120 2013-02-01 12:24:02

Pavel555
Пользователь
Зарегистрирован: 2012-09-16
Сообщений: 36
Рейтинг :   
Профиль

Re: similar :: Похожие новости

Добрый день, Виталий. Подскажи пожалуйста, есть подвижки выводу похожих новостей по схеме "новые первыми"?

Неактивен

 

#121 2013-03-31 11:52:41

Ololosha
Новичок
Зарегистрирован: 2013-03-31
Сообщений: 3
Рейтинг :   
Профиль

Re: similar :: Похожие новости

Здравствуйте. Как можно вытащить ID новости (используется в новостях - {news-id})? При выводе похожих новостей мне нужно ID, а там кроме названия, ссылки и даты нет ничего...
Спасибо.

Неактивен

 

#122 2013-12-07 17:28:21

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: similar :: Похожие новости

Есть возможность вывода в короткую новость?

Неактивен

 

#123 2014-01-14 19:34:54

legenda
Пользователь
Откуда: ua
Зарегистрирован: 2009-12-22
Сообщений: 2133
Рейтинг :   39 
Профиль

Re: similar :: Похожие новости

счас занимаемся переделкой плагина, есть пару вопросов

1. Как проходит выборка в плагине?(критерии)
2. В каком файле и где именно оно выбирает какие новости выводить на сайт.

Может кто то подсказать? а то вапше принцип видачи непонтний

Неактивен

 

#124 2014-01-15 02:17:36

vitaly
Администратор
Откуда: Россия
Зарегистрирован: 2008-10-08
Сообщений: 2785
Рейтинг :   115 
Профиль

Re: similar :: Похожие новости

Логически плагин состоит из 2х частей:
1. Расчёт похожести новостей
2. Отображение списка "похожих" внутри целевой новости

Похожесть
Обновление происходит в момент редактирования/добавления новости.
Для неё (и всех "похожих" на неё) происходит пересчёт таблицы индексов (ng_similar_index).
Функции:

Код:

        // Reset linked news
        plugin_similar_resetLinked($newsID);

        // Reset news with the same tags [ AFTER actual edit - new tags ]
        plugin_similar_reset($newsID);

Сама похожесть определяется в plugin_similar_repopulate(), inc/similar.php, строка ~118:

Код:

        $list = $mysql->select("select i.newsID, count(i.tagID) as cnt, n.title, n.editdate, n.postdate from ".prefix."_tags_index i left join ".prefix."_news n on n.id = i.newsID where (i.newsID <> ".db_squote($newsID).") and (i.tagID in ( select tagID from ".prefix."_tags_index where newsID = ".db_squote($newsID).") ) group by newsID order by cnt desc");

.. изменяя этот SQL запрос (или заменив его на более сложную логику) можно изменить логику определения степени похожести

Принцип выдачи описан в конфигураторе плагина:

Код:

ВНИМАНИЕ!
Это - первый этап реализации плагина. Плагин оценивает похожесть новости только по данным, предоставляемым плагином tags (облако тегов).
В будущих версиях появится возможность более сложного анализа.

При этом обрати внимание - есть поле dimension, которое позволяет использовать разные механизмы определения похожести.
dimension = 0 - текущий вариант (т.е. по тегам), остальные варианты не используются, при доработке плагина лучше воспользоваться этим полем - это позволит, к примеру, создать собственный принцип определения похожести и при этом сохранить структуру БД и обратную совместимость.


Отображение списка
similar.php, начинается с:

Код:

    function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {

дальше всё очевидно и просто.


Переделка
Первое что приходит в голову - начать учитывать не только теги, но и "расстояние во времени" (разницу между временем публикации основной новости и "похожих" на неё) и ввести некий коэффициен.
К примеру, уменьшать степень похожести ("...order by cnt desc") на 10% за каждые 10 дней между новостями, тогда при совпадении 5 тегов, но с разницей в 30 дней новость будет менее "похожей" чем при совпадении 4 тегов, но разницей в 1 день.

Аналогично можно ввести какой-либо коэффициент за нахождение новости в той же категории....

В общем, дальше только полёт фантазии.
А после окончания фантазий нам остаётся только взять inc/similar.php, строка ~120:

Код:

        // Populate data for our news
        for ($i = 0; $i < min(count($list), $count); $i++) {
            $row = $list[$i];
            $mysql->query("insert into ".prefix."_similar_index (newsID, refNewsID, refNewsQuantaty, refNewsTitle, refNewsDate) values (".db_squote($newsID).", ".db_squote($row['newsID']).", ".db_squote($row['cnt']).", ".db_squote($row['title']).", ".db_squote(($row['editdate']>$row['postdate'])?$row['editdate']:$row['postdate']).")");
        }

        foreach ($list as $row)
            $affectedList [ $row['newsID'] ] = $row['newsID'];

и вписать сюда свой код (задав собственное значение dimension для полного счастья).

Неактивен

 

#125 2014-01-21 19:32:49

Lagun
Новичок
Зарегистрирован: 2013-12-20
Сообщений: 5
Рейтинг :   
Профиль

Re: similar :: Похожие новости

vitaly написал:

Логически плагин состоит из 2х частей:
1. Расчёт похожести новостей
2. Отображение списка "похожих" внутри целевой новости

Похожесть
Обновление происходит в момент редактирования/добавления новости.
Для неё (и всех "похожих" на неё) происходит пересчёт таблицы индексов (ng_similar_index).
Функции:

Код:

        // Reset linked news
        plugin_similar_resetLinked($newsID);

        // Reset news with the same tags [ AFTER actual edit - new tags ]
        plugin_similar_reset($newsID);

Сама похожесть определяется в plugin_similar_repopulate(), inc/similar.php, строка ~118:

Код:

        $list = $mysql->select("select i.newsID, count(i.tagID) as cnt, n.title, n.editdate, n.postdate from ".prefix."_tags_index i left join ".prefix."_news n on n.id = i.newsID where (i.newsID <> ".db_squote($newsID).") and (i.tagID in ( select tagID from ".prefix."_tags_index where newsID = ".db_squote($newsID).") ) group by newsID order by cnt desc");

.. изменяя этот SQL запрос (или заменив его на более сложную логику) можно изменить логику определения степени похожести

Принцип выдачи описан в конфигураторе плагина:

Код:

ВНИМАНИЕ!
Это - первый этап реализации плагина. Плагин оценивает похожесть новости только по данным, предоставляемым плагином tags (облако тегов).
В будущих версиях появится возможность более сложного анализа.

При этом обрати внимание - есть поле dimension, которое позволяет использовать разные механизмы определения похожести.
dimension = 0 - текущий вариант (т.е. по тегам), остальные варианты не используются, при доработке плагина лучше воспользоваться этим полем - это позволит, к примеру, создать собственный принцип определения похожести и при этом сохранить структуру БД и обратную совместимость.


Отображение списка
similar.php, начинается с:

Код:

    function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {

дальше всё очевидно и просто.


Переделка
Первое что приходит в голову - начать учитывать не только теги, но и "расстояние во времени" (разницу между временем публикации основной новости и "похожих" на неё) и ввести некий коэффициен.
К примеру, уменьшать степень похожести ("...order by cnt desc") на 10% за каждые 10 дней между новостями, тогда при совпадении 5 тегов, но с разницей в 30 дней новость будет менее "похожей" чем при совпадении 4 тегов, но разницей в 1 день.

Аналогично можно ввести какой-либо коэффициент за нахождение новости в той же категории....

В общем, дальше только полёт фантазии.
А после окончания фантазий нам остаётся только взять inc/similar.php, строка ~120:

Код:

        // Populate data for our news
        for ($i = 0; $i < min(count($list), $count); $i++) {
            $row = $list[$i];
            $mysql->query("insert into ".prefix."_similar_index (newsID, refNewsID, refNewsQuantaty, refNewsTitle, refNewsDate) values (".db_squote($newsID).", ".db_squote($row['newsID']).", ".db_squote($row['cnt']).", ".db_squote($row['title']).", ".db_squote(($row['editdate']>$row['postdate'])?$row['editdate']:$row['postdate']).")");
        }

        foreach ($list as $row)
            $affectedList [ $row['newsID'] ] = $row['newsID'];

и вписать сюда свой код (задав собственное значение dimension для полного счастья).

А как сделать похожесть по интервалу в дате если в столбце refnewsid записана только 1 новость,каким образом берутся следующие? Или я неправильно понимаю механизм вашего запроса.

Отредактированно Lagun (2014-01-21 19:34:47)

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.028 seconds, 31 queries executed ]