二つ以上の要約が類似しているかどうかの確認
-
21-08-2019 - |
質問
問題があります:
私は他の比較的類似した要約を比較したいことを、通常20〜50単語の間に1つのサマリーを、持っています。一般的なカテゴリと地理的位置は、これに要約が既に知られていることをいう。
同じ地域からの人々が家を建てるについて書いている場合は、たとえば、私は、彼らが実際に家を構築する代わりに、ガレージや裏庭の構築を参照することを確実性のいくつかのレベルでそれらの概要を一覧表示できるようにしたいのですがスイミングプールます。
データセットは、一日あたり約200ドキュメントの成長率は現在約50 000の文書です。
優先言語は、仕事を得るかもしれない方のPython、PHP、C / C ++、Haskellのかアーラン、だろう。あなたが気にしない場合にも、私は特定の言語を選ぶための理由を理解したいと思います。
解決
あなたは WEBSOMプロジェクトのを見ている可能性があります。
自分のWebサイトは、今年正確に更新されていないにもかかわらず、解決された問題は、非常によく似ています。彼らは10年前のようなあなた(およびそれ以上)に類似したデータの量を処理したとして、今日、あなたはおそらく、ほとんどの携帯電話上でアルゴリズムを実行することができます。
他のヒント
あなたは言葉が重なって計算し、そのようなジャカードやサイコロなど、いくつかの文字列の類似度を使用しようとするが、代わりに文字と重なって計算することができます。たとえば、Pythonのを使用して、次のものを使用することができます:
def word_overlap(a, b):
return [x for x in a if x in b]
def jaccard(a, b, overlap_fn=word_overlap):
"""
Jaccard coefficient (/\ represents intersection), given by :
Jaccard(A, B) = (A /\ B) / (|a|) + (|b|) - (A /\ B)
"""
c = overlap_fn(a, b)
return float(len(c)) / (len(a) + len(b) - len(c))
jaccard("Selling a beautiful house in California".split(), "Buying a beautiful crip in California".split())
、我々は<のhref = "https://stackoverflow.com/questions/671398/determining-if-two-or-more-summaries-are-similarを変更することができます/ 1149292#1149292" >としてJGSコードで、
def jaccard(a, b):
"""
Jaccard coefficient (/\ represents intersection), given by :
Jaccard(A, B) = (A /\ B) / (|a|) + (|b|) - (A /\ B)
"""
c = a.intersection(b)
return float(len(c)) / (len(a) + len(b) - len(c))
jaccard(set("Selling a beautiful house in California"), set("Buying a beautiful crip in California"))
選択する特定の言語は本当にありません。あなたは、意味的な類似性を発見しようとしています。これは非常に大きな面積です。あなたはこの論文に興味があるかもしれません。