2010-12-14 12 views
1


私は遺伝的アルゴリズムを使ってテキストを最もよく表す単語リストを生成するプロジェクトに取り組んでいます。
私は現在コサインの類似性を使用していますが、それは2つの欠点があります。それは目的にはあまりにも遅く、比較される2つのベクトルがゼロの場合、人工的に高い類似性と、非常に良い。 速い/そこにない言葉に注意を払わない他の尺度に対する提案はありますか?おかげさまで 高速ベクトル差/類似性対策

+0

あなたは何を求めているのかは分かりませんが、おそらく[Levenshtein distance](http://en.wikipedia.org/wiki/Levenshtein_distance)または[Hamming distance](http:// en。 wikipedia.org/wiki/Hamming_distance)? –

答えて

3

コサイン類似度は、製品の大きさに対してドット積であるため、最小次元数が重要です。

群れを少し処分するために、あなたがするので、一つの次元に似た意味を持つ単語を崩壊、そして寸法プールからhapax legomena(のみ検討中のコーパスに一度発生した単語)を放り出すしstemmingを適用したい場合がありますアルゴリズムはそれらから多くの有益な情報を引き出すことができない可能性が高い。

しかし、私はゼロベクトルを生み出すのかどうかはわかりません。あなたは例を挙げることができますか?

EDIT:だから、あなたは後にしているものを特定の文書またはクラスタのための選択ある単語リストを作成するのですか?その場合、選択性の低い単語を削除するにはいくつかの方法が必要です。

さらに一般的な単語をstop wordsとして扱い、ディメンションセットをさらに絞り込んで少し高いパフォーマンスを得ることができます。また、遺伝的アルゴリズムの側面では、適性関数は、クラスタ内の文書に一致するものに報酬を与えるだけでなく、対象クラスタ外の文書に一致する単語リストをペナルティする必要があるため、単語リストには単純な用語で煩雑になることはありません選択的ではなく頻繁に。

あなたも適合関数をチューニングした後に、より良い意味的な選択が必要な場合、あなたはorthogonal sparse bigramsの代わりに、個々の単語を使用して検討する必要があります。しかし、 O(kn nではなく、もっと多くのものがhapaxesになるため、次元数の面で何ができるかわかりません。しかし、用語リストにOSBではなく個々の単語が必要な場合には、問題が発生する可能性があります。

+0

私は基本的に私のセットのまばらさは(言葉のロットhapaxesと何千回の一握りを使用)、少し間違っていたの類似点が頻繁に彼らがコーパスの良いクラスタを表さないにも関わらず非常に高かったことを意味しました。 – Reu

関連する問題