2012-05-11 19 views
5

私はObjective-Cで基本的な推薦システムを書こうと思っています。私はその仕事のための基本的なアルゴリズムを探しています。残念なことに、既製のシステムはObjective-Cのためのものではないので、テーブルから外れています。基本的な推薦エンジンアルゴリズム

私はアイテムのデータベースを持っていますが、それぞれにタグ(「ホラー」、「アクション」などのタグが付いたムービーを考える)を持っています。各アイテムには〜5程度のタグがあります。ユーザーが最初にアプリを使用すると、一連の質問への入力に基づいてプロフィールが準備され、いくつかのタグがプロフィールに関連付けられます。

ユーザーが引き続きシステムを使用し、さまざまなアイテム(憎悪/好き嫌いの基準)を評価しているため、そのフィードバックに基づいて推奨タグの重み付けを調整したいと思います。私はまた、彼らのプロフィールが成長するにつれて、例えば映画の場合は "80"のように、格付けのいくつかの他のプロパティを取りたいと思います。映画の主題にこだわった監督かもしれない。

私は、似たようなユーザーがおすすめを探すために通常の(または少なくとも人気のある)推奨システムを避けることを選択しています。これは大きいアイテムデータベースと最小限のユーザーを開始する予定です。

誰もこのようなアルゴリズムの良い出発点をお勧めしますが、私は車輪を再発明することができません、そこにはたくさんのことがありますか?

+0

私はこの経験はありませんが、これはエンジンやフレームワークなしで行うことができます。基本的には、タグを数えたり、多分数年(例えば80年代)のようなものでなければならないと仮定して、ユーザーが好きなものを計算して一致を見つけたり、各映画のマッチスコアユーザーと一緒にトップのものを選んでください。 – altschuler

+0

知識ベースの作成と後方連鎖アルゴリズムの使用はどうですか?それは少し過剰ですが、それはうまくいくと思います。 – doNotCheckMyBlog

+1

別の言語の棚製品を使用している場合は、目的言語に固執する理由はありますか?この言語をコードとして記述するか、既存の実装として使用するだけです2つのモジュール間で通信するためのインターフェースを構築する。 – amit

答えて

0

あなたのニーズに合ったアイテムベースの推奨を使用することができます。後でタグを加重に組み込むことができますが、今はアイテムのみを検討することをお勧めします。

もう少し詳しく学ぶことができますhttp://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/itembased.htmlネット上にはいくつかの実装があります。

投稿で言及したことは、ユーザーベースの共同編集フィルタリングと呼ばれます。

1

あなたはpython-recsys:https://github.com/ocelma/python-recsysを参照してください、このソフトウェアはSVDアルゴリズムを使用してください、私は基本アルゴリズムだと思いますが十分に効果があると思いますか?必要なライブラリはnumpyとscipyです。これはC言語で書かれ、Pythonでラップされています。私はコンパイルが容易で、目的に移植することができると思います