問題タブ [oov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1325 参照

python - 未知の単語を既知の単語に解決する効率的な方法は?

長い項目別のテキストドキュメントからキーワードのリストを生成し、意味が似ている単語のエントリを組み合わせるテキスト処理プログラムを設計しています。そこにはメトリックがありますが、使用している辞書にない単語を処理するという新しい問題があります。

私は現在nltkとpythonを使用していますが、ここでの私の問題ははるかに抽象的な性質のものです。辞書にない単語を考えると、辞書にある単語にそれを解決する効率的な方法は何でしょうか?私の現在の唯一の解決策は、辞書内の単語を調べて、入力された単語からレーベンシュタイン距離(編集距離)が最も短い単語を選択することです。

明らかに、これは非常に遅くて実用的でない方法であり、含まれている単語であり、かなり近い限り、辞書内から完全に一致する必要はありません。ソリューションでは効率がより重要ですが、基本的なレベルの精度も必要になります。

未知の単語を辞書で既知の単語に一般的に解決する方法についてのアイデアはありますか?

0 投票する
2 に答える
7034 参照

nlp - 品詞のタグ付け : 未知の単語のタグ付け

品詞タガーでは、与えられた文の最も可能性の高いタグは、HMM を使用して次のように決定されます。

しかし、'Word' がトレーニング コーパスに表示されなかった場合、P(Word/Tag) は考えられるすべてのタグに対して 0 を生成するため、最適なものを選択する余地がありません。

いくつかの方法を試しましたが、

1) すべての未知の単語に少量の確率を割り当てる P(UnknownWord/AnyTag)~Epsilon ... は、一定の確率を割り当てることにより、未知の単語の P(Word/Tag) を完全に無視することを意味します..したがって、未知の単語に関する意思決定事前確率によるものです。予想通り、良い結果が得られていません。

2) ラプラス スムージング 私はこれと混同しました。(1)とこれの違いがわかりません。ラプラス平滑化を理解する私の方法は、すべての未知の既知の単語に一定の確率(ラムダ)を追加します..したがって、すべての未知の単語は一定の確率(ラムダの割合)を取得し、すべての単語の確率が増加するため、既知の単語の確率は相対的に同じになりますラムダ。ラプラス平滑化は前のものと同じですか?

*)未知の単語を扱うより良い方法はありますか?

0 投票する
1 に答える
1885 参照

feature-extraction - tf-idf で非常に珍しい用語を扱う方法は?

素朴な「キーワード抽出アルゴリズム」を実装しています。私は独学なので、オンライン文献で一般的な用語や数学が不足しています。

ドキュメントの「最も関連性の高いキーワード」を次のように見つけています。

  1. 各用語が現在のドキュメントで使用されている頻度を数えます。これをtfとしましょう。
  2. これらの各用語がドキュメントのデータベース全体でどのくらいの頻度で使用されているかを調べます。これをdfとしましょう。
  3. r = tf / dfによって、各用語の関連性の重みrを計算します。

各ドキュメントはコーパスの適切なサブセットであるため、コーパスにない用語を含むドキュメントはありません。これは、ゼロ除算について心配する必要がないことを意味します。

すべての用語をrで並べ替え、上位の用語の多くを保持します。これらは、このドキュメントに最も密接に関連する上位のキーワードです。このドキュメントで一般的に使用される用語は、より重要です。ドキュメントのデータベース全体に共通する用語は、それほど重要ではありません。

これは単純な形式のtf-idfだと思います。

問題は、用語がデータベース全体で非常にまれであるが、現在のドキュメントで使用されている場合、 r値が高すぎるように見えることです。

これは、サンプル サイズが小さいため、ある種のアーティファクトと考えることができます。これを補うための最善の方法または通常の方法は何ですか?

  • データベース全体で特定のしきい値よりも一般的でない用語を破棄します。もしそうなら、そのしきい値はどのように計算されますか? ハードコードされた値になるには、あまりにも多くの要因に依存しているようです。
  • 逆二乗やコサインなどの数学関数で加重または平滑化できますか?

私はウェブを検索してtf-idfを読んでみましたが、私が興味を持っていないドキュメントの比較を扱っていることがわかりました。さらに、それらのほとんどは、説明と専門用語や公式の比率が低くなっています。

(実際、私のプロジェクトはこの問題の一般化です。私は実際に Stack Exchange サイトのタグを扱っているので、用語の総数は少なく、ストップワードは無関係であり、使用頻度の低いタグは使用頻度の低い単語よりも一般的かもしれません。通常のケースです。)

0 投票する
2 に答える
1571 参照

nlp - 未知の単語と既知の単語の品詞

未知の単語の品詞タグ付けと既知の単語の品詞タグ付けの違いは何ですか。単語の品詞タグ付けを予測できるツールはありますか..

0 投票する
3 に答える
692 参照

word2vec - GoogleNews-vectors-negative300.bin での OOV 単語の処理

次のようにトークン化された文の各単語の単語ベクトルを計算する必要があります。

事前トレーニング済みの [fastText][1] Embeddings: cc.en.300.bin.gz by facebook を使用していた場合。OOVで取得できました。ただし、GoogleNews-vectors-negative300.bin から Google の word2vec を使用すると、InvalidKey エラーが返されます。私の質問は、OOV である単語ベクトルをどのように計算するかです。オンラインで検索しましたが、何も見つかりませんでした。もちろん、これを行うには、Google の word2vec にリストされていない単語を含むすべての文を削除します。しかし、16134 のうち 5550 だけが完全に埋め込みに含まれていることに気付きました。

私もやった

ただし、tensorflow 2 はエラーを返します。

どんな助けでも大歓迎です。