Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

Сокол
Участник
Откуда: Красноярск
Здесь с 2009-05-23
Сообщений: 227
Рейтинг :   
Сайт

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

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

Вне форума

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

easmik
VIP забанил этого пользователя.
Откуда: Анталья
Здесь с 2011-02-01
Сообщений: 1,016
Рейтинг :   37 
Сайт

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

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


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

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

Вне форума

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   39 

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

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

Вне форума

#104 2012-10-11 18: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 19:00:47)

Вне форума

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

infinity237
Модератор
Откуда: Russia, Moscow
Здесь с 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

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

Вне форума

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

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

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

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

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

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

vitaly пишет:

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

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

Вне форума

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

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

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

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

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

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

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

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

Вне форума

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

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

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

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

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

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

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

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

vitaly пишет:

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

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

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

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

Вне форума

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   39 

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

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

Вне форума

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

irbees2008
Продвинутый чайник
Откуда: Шахтинск
Здесь с 2012-03-14
Сообщений: 2,739
Рейтинг :   114 
Сайт

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

Pavel555 пишет:

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

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

Вне форума

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

irbees2008
Продвинутый чайник
Откуда: Шахтинск
Здесь с 2012-03-14
Сообщений: 2,739
Рейтинг :   114 
Сайт

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

legenda пишет:

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

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

Вне форума

#116 2012-10-13 17: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 17:27:49

irbees2008
Продвинутый чайник
Откуда: Шахтинск
Здесь с 2012-03-14
Сообщений: 2,739
Рейтинг :   114 
Сайт

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 18:30:47)

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

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

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

vitaly пишет:

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

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

Pavel555 пишет:
vitaly пишет:

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

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

legenda пишет:

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

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

Вне форума

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

Pavel555
Участник
Здесь с 2012-09-16
Сообщений: 36
Рейтинг :   

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

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

Вне форума

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

Ololosha
Участник
Здесь с 2013-03-31
Сообщений: 3
Рейтинг :   

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

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

Вне форума

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

irbees2008
Продвинутый чайник
Откуда: Шахтинск
Здесь с 2012-03-14
Сообщений: 2,739
Рейтинг :   114 
Сайт

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

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

Вне форума

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   39 

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

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

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

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

Вне форума

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

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   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 18: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 18:34:47)

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.057 сек, 7 запросов выполнено - Использовано памяти: 654.52 Кбайт (Пик: 707.52 Кбайт) ]