2017-05-19 11 views
0

私は、顧客がさまざまなタクソノミー用語でタグ付けされたアイテムを購入するサイトを持っています。私は、購入した購入に関連するタグを考慮して同じ商品に興味のある顧客のグループを作りたいと考えています。グループを構築するたびに、各顧客のタグの一覧を比較するのではなく、問題の解決にいくつかのタイプの得点を使用できるかどうかと思います。スコアリングを使用して顧客を見つける

私はそれについて考えていますが、各タグにはそれに割り当てられた固有の番号があります。スコアリング操作を実行すると、特定のタグセットを組み合わせることによってのみ達成できる数値がレンダリングされます。

私は顧客の「スコア」を定期的に更新して、関連性を保つことができました。

私は適切なトラックにいますか?何か案は?

+0

スコアの意味は? –

+0

は、ここで私が何を意味するかの例ですが、それはこのように動作しません:私は赤= 1、青= 2、緑= 3、イエロー= 4を持っている場合、私は、任意の組み合わせの合計で見ることができます。問題はユニークではないということです。赤と青は3で、これも緑です。結果を1つのユニークな数字(スコア)にすることができれば、個々のタグの代わりにスコアを比較することができます。 – Ward

+0

なぜリストだけではなく合計ですか? –

答えて

1

問題の説明は、クラスタリングまたは推奨の問題のように見えます。これらのタグがクラスター化や推薦を厳しくするために十分な情報であるかどうかはわかりません。

あなたの考えは私には見えません。なぜなら、それらの数字が慎重に選択されていなければ、いくつかの方法で同じ合計を達成できるからです。

あなたはユーザーごとにタグを保存することができます:私はあなたを示唆している何

。一部のユーザーが新しいアイテムを購入すると、アイテムのタグをユーザーのタグに追加します。定期的にユーザープロファイルを更新します。更新時にAとBの類似度がある閾値よりも大きい場合、2人のユーザーが類似していることを示すユーザー間の関係を追加します。それが低い場合、関係を削除します(以前は関連していた場合)。類似性は、多くの共通タグまたはnum_common_tags/num_of_tags_assigned_either_in_A_or_Bのいずれかです。

その後、特定のタグセットでユーザーを取得する場合は、どのユーザーにそのタグセットがあるかを確認するクエリを実行します。また、どのユーザーが問題のユーザーとリンクしているかを調べるだけで、特定のユーザーと同様のユーザーを確認することもできます。

0

あなたが各タグには、2つのユニークなパワーを割り当てる場合は、タグに対応する値を合計することができ、タグの正確な同じセットを持つユーザーは、同一の値を取得します。

red = 1 
green = 2 
blue = 4 
yellow = 8 

は例えば、{ red, blue }のセットを持っている唯一の顧客は、これは、本質的にセットを表現するためにビットマップを使用している5.

の値を持つことになります。欠点は、タグがたくさんある場合、すぐに整数が使い果たされることです。たとえば、(符号なし)整数型が4バイトの場合、32個のタグに制限されます。より大きなビットセットを表現できるようにするライブラリとクラスがありますが、その時点ではおそらく他のアプローチを検討する価値があります。

このアプローチのもう一つの問題は、それはあなたが似ているが同一ではないメンバーをクラスタ化する助けにはならないということです。

+0

うわー。私はこれをすべて取りに行きましょう... – Ward

関連する問題