QA@IT

Cicindelaのuser to item(for_user)の推薦について

1867 PV

レコメンデーションエンジンCicindelaの、
user to item(for_user)推薦を動作させるための設定について質問です。

livedoor clipを用いたデモ(http://code.google.com/p/cicindela2/wiki/Demos)
に沿って設定を行いましたが、user to item推薦のみ推薦が行なわれません。
( http://[base_url]/recommend?set=clip_simple&op=for_user&user_id=22)

何度かuser_idを変えて、リクエストしてみましたが、推薦結果が返って来ません。
(user to userやitem to itemの場合はうまく推薦されます)
他のデータセットで試してみましたが、同様にuser to itemの推薦のみ動作しません。

ちなみに、Filterとrecommenderの設定は以下のようになっています。
filters => [
'PicksExtractor',
'InverseUserFrequency',
'UserSimilarities',
],
recommender => 'UserSimilarities',

'UserSimilarities'を'ItemSimilarities'に変更した場合も同様に動作しませんでした。

user to itemの推薦が動作した方が居ましたら、Filterやrecommenderの設定等教えて頂けないでしょうか。

回答

最近の DBD:mysql だと lib/Cicindela/Recommender.pm 125行目のコメント内のプレースホルダ
("--" のあとの"?")が許されていないらしく、
私の場合ここでエラーになっていました。

124行目の
where uninterested1.item_id is null

where uninterested1.item_id is null or (? = 3 and 1 = 2)
のようにすることで、うまくいきました。
(追加部分は常にfalseになり"?"を含んでいればなんでも大丈夫です)

お試しください。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。