public function collaborativeFilteringWithSlopeOnePreprocess()
 {
     $this->dm->executeSqlFile(__DIR__ . "\\col_table.sql");
     $item = array();
     $user = array();
     $item_results = $this->dm->query("select * from item");
     while ($item_row = mysql_fetch_array($item_results)) {
         $item[$item_row['name']] = $item_row['id'];
     }
     $user_results = $this->dm->query("select * from keyword");
     while ($user_row = mysql_fetch_array($user_results)) {
         $user[$user_row['keyword']] = $user_row['id'];
     }
     $pair_results = $this->dm->query("select * from keyword_item_weight");
     while ($pair_row = mysql_fetch_array($pair_results)) {
         $this->dm->query("insert into oso_user_ratings values(" . $user[$pair_row['keyword']] . "," . $item[$pair_row['item']] . "," . $pair_row['weight'] . ")");
     }
     $openslopeone = new OpenSlopeOne();
     $openslopeone->initSlopeOneTable('MySQL');
 }
Beispiel #2
0
Нужно решить, что самое важное в этих действия, а что нет. Зачем? Например, если пользователь просматривал, можно ему в след. раз напомнить эту статью.  Если он проголосовал, то нету смысла уже её рекомендовать он сделал своё дело.
Также эти все рекомендации берутся и у других пользователей, кто делаем максимум похожих действия и находит у пользователя (про которого мы сейчас говорим) самые жирные статьи, например, где на них все голосовали (значит там есть что-то интересное, если голосуют).

Максимум действия это 100%, можно их разбить по важности:
1. голосовать 50%
2. просматривать 10%
3. просмотреть под катом 20%
4. добавить в избранное 20%
*/
//включаем класс с функциями
require './OpenSlopeOne.php';
//создаем класс
$openslopeone = new OpenSlopeOne();
//инициализируем  таблицу `oso_slope_one`
$openslopeone->initSlopeOneTable();
$openslopeone->initSlopeOneTable('MySQL');
?>
<html>
	<head>
		<title>Test</title>
	</head>
	<body>
		<!--
		Пользователь может сделать 4 действия и его вес важности в скобках
		-->
		<a href='http://demo.ms.dp.ua/analytics/index.php?action=1'>1 action (50%)</a>
		<br/>
		<a href='http://demo.ms.dp.ua/analytics/index.php?action=2'>2 action (20%)</a>
		<br/>
		<a href='http://demo.ms.dp.ua/analytics/index.php?action=3'>3 action (20%)</a>