1

PHP を使用して、facebook と twitter から友達リストを取得し、各リストを連想配列に格納しました。私は彼らの名前と場所の両方を知っています。名前と場所に基づいて、fb と twitter の両方の友達を比較し、類似度スコアを提供したいと考えています。

約 0.7 のしきい値を設定したいのと同様に、スコアが個人のスコアよりも高い場合、それは同じエンティティを表していることを意味します。私はphp関数similar_textを使用しましたが、あまりにも基本的で、名前の単語に基づいているだけなので、ほぼすべての友人に50〜60%の一致を与えています.

助言がありますか?

4

1 に答える 1

1

ベクトル空間モデルを検討することをお勧めします。それぞれの名前と場所を、非常に高次元の空間の次元として表します。Twitter を 1 つのベクトルとして、Facebook を別のベクトルとして表します。たとえば、Facebook と Twitter の両方に Mike という名前の友人がいる場合、「Mike」次元は両方のベクトルでゼロ以外の値を持ちます。これら 2 つのベクトル間の角度を比較することで、類似度スコアを計算できます。角度が小さいほど、類似度が高いことを示します。簡単な例:

Twitter の友達: Ada Alan Beth Dana Jon

Facebook の友達: Anne Beth Dana Jon

空間には次の次元が含まれます: < エイダ、アラン、アン、ベス、ダナ、ジョン >

Twitter ベクトル: t = < 1, 1, 0, 1, 1, 1 >

フェイスブックのベクトル: f = < 0, 0, 1, 1, 1, 1 >

それらの間の角度は ArcCos( [ f dot t ] / [ | f | * | t | ] )に等しい

https://en.wikipedia.org/wiki/Vector_space_modelを参照してください

于 2013-04-24T05:07:35.173 に答える