NLP の基礎 - 単語表現、テキスト特徴量エンジニアリング

NLP の基本 - 単語表現とテキスト機能

1. 単語表現: ワンホット エンコーディング、tf-idf

  1. 単語表現: 0-1 ワンホットエンコーディング --> 文表現: 0-1 ( Boolean )

    各文の表現であるシソーラス V を構築します。各分詞が V (0/1) に現れるかどうかに応じて、表現ベクトルのサイズは |V| になります。

  2. 単語表現: 0-1 ワンホットエンコーディング --> 文表現: 0-1 ( Count )

    各文の表現であるシソーラス V を構築します。V 内の各分詞の出現数を数えます。表現ベクトルのサイズは |V| です。

  3. 文の類似度: ユークリッド距離、コサイン類似度。

  4. TF-IDF:tfidf ( w ) = tf ( d , w ) ∗ idf ( w ) tfidf(w)=tf(d,w)*idf(w)t f i d f ( w )=t f ( d ,i d f ( w )

    tf ( d , w ) tf(d,w)t f ( d ,w ) : 文書 d 内の w の単語頻度。

    idf ( w ) idf(w)i d f ( w ) := log ( NN ( w ) ) =log(\frac{N}{N(w)})=l o g (N ( w )N、単語の重要性、逆文書頻度(逆文書頻度)。

    N: コーパス内の文書の総数。

    N(w): w という単語が出現する文書の数。

2.Word2Vec

ワンホット表現では単語の意味を表現できず、データの疎性の問題もあるため、単語ベクトル空間で単語表現を見つけるようにしてください。

重要な移行:ワンホット表現 —> 分散表現

2.1 単語の埋め込み

Word 埋め込み単語ベクトル モデル: (分散仮定によると、隣り合う単語の類似性が高くなります)

  1. 従来: SkipGram、CBOW、Glove、FastText、行列分解(MF)。

  2. コンテキスト (動的表現) を考慮します: ELMo、BERT、XLNet。

  3. ワードベクトルの次元削減: T-sne

単語ベクトルの表現が既知であれば、文または文書の表現もすぐに取得できます。

単語の埋め込み --> 文の埋め込み: 平均プーリング、最大プーリングなど

従来の Word 埋め込みモデルは次のとおりです。

  • SkipGram : ウィンドウ サイズに従って関連するコンテキスト ワードを選択する古典的なローカル メソッド。コンテキストウィンドウを活用しましょう。

  • FastTextの核となるアイデア: OOV (語彙不足) 問題と、頻度の低いいくつかのワードプロセッサの問題を解決します。n-gram 特徴を使用して、各単語の 2 グラム、3 グラム、4 グラムおよびその他のサブワード特徴がトレーニング プロセス中に考慮され、特徴融合後のトレーニングには SkipGram が使用されます。

  • 行列分解: 古典的なグローバル手法、共起カウントを利用する

  • Glove : 重み付き最小二乗誤差を使用して、グローバル性 (MF など) と局所性 (SkipGram など) を同時に組み合わせます。重み付き最小二乗誤差を使用します。


質問: CBOW と Skip-Gram はどちらが優れていますか?

必ずというわけではありませんが、一般に Skip-Gram の方が CBOW よりも優れています。

  1. データサイズ(ウィンドウサイズ):例: w 1 , w 2 , w 3 , w 4 , w 5 {w_1,w_2,w_3,w_4,w_5}w1w2w3w4w5では、ウィンドウ サイズ = 1、CBOW に 3 つのサンプル、Skip-Gram に 8 つのサンプルがあります。
  2. 難易度: CBOW は複数の文脈単語から中心単語を予測するのが比較的簡単ですが、Skip-Gram は単一の中心単語から文脈単語を予測するのが比較的困難です。
  3. 平滑化効果: CBOW では、出現回数が少ない単語には効果が悪くなりますが、出現回数が多い単語には効果が高くなります。コンテキスト単語内で多少の頻度を持つ単語は、Average Pooling (平均) プロセスによっていくつかの単語の特徴と結合されます。平均により、単語の頻度が低い単語の表現効果が弱められます。

2.2 ガウス埋め込み

2 つの確率分布間の類似性/差異を測定するために使用されます: KL ダイバージェンス (カルバック・ライブラーダイバージェンス、KL ダイバージェンス)。

確率分布 P(x) および Q(x) の場合:
D ( P ∣ ∣ Q ) = ∑ P ( x ) log ( P ( x ) / Q ( x ) ) D(P||Q) = \sum P( x)log(P(x)/Q(x))D ( P Q =P ( x ) l o g ( P ( x ) / Q ( x ) )
P(x) と Q(x) の類似性が高いほど、KL 発散は小さくなります。


質問: コーパス内で頻度の高い単語と低い単語について学習された単語ベクトルのどこが間違っていますか?

統計的な観点からは、出現回数が多いほど信頼性が高く、各単語の単語ベクトルの確率分布N ( μ , σ ) N(\mu,\sigma) を計算できます。N ( μ ,σ )2つの単語ベクトル分布間のKL乖離を計算することで類似性を判定します。

2.3 コンテキスト埋め込み

多義性の問題を解決します。

ELMo、BERT、XLNet のコンテキストを考慮します。

3. テキスト特徴エンジニアリング

機械学習、データマイニング、NLP の分野において、テキストの固定された基本機能は何ですか? 以下にまとめてみましょう。

テキストの特徴:

  • tf-idf: シソーラス サイズ |V|;
  • Word2vec/Sentence2Vec: 単語ベクトルの埋め込み次元 k。
  • n-gram: バイグラム、トライグラムなどの機能を使用します。シソーラス V の場合、Bi-gram は V から選択された任意の 2 つの単語のすべての組み合わせを構築できます。(組み合わせの数) は S>>|V| です (2 つの単語ごとに「単語」とみなされ、新しい辞書が形成されます)。コーパス内の各文に対して、バイグラムに従って 0-1 エンコードを実行できます (文の前後の単語を組み合わせ、その組み合わせがバイグラムに出現する場合は 1、それ以外の場合は 0)。
  • POS品詞;
  • トピックの特徴: LDA によって計算できます。
  • タスク固有の機能

ワード ベクトルに基づく特徴エンジニアリングには、主に次の側面が含まれます。

  • Word2Vec または FastText の単語ベクトルを合計するか最大値を取得します。
  • Word2Vec や FastText の単語埋め込みに基づいて、特定の単語ベクトルの最大値と平均値を求め、サンプルの新しい特徴として使用します。
  • Bert、XLNet、およびその他の事前トレーニング済みモデルの埋め込みをサンプル表現に統合します
  • モデル上の単語間の相互作用の影響を考慮します。モデルの場合、最大の寄与は必ずしも文全体ではなく、文の一部 (フレーズ、フレーズなど) である可能性があります。これに基づいて、異なるサイズのスライディング ウィンドウ
    (k=[2, 3, 4]) を使用し、平均または最大の演算を実行します。
  • サンプル表現では、AutoEncoder モデルのフュージョン サンプルによって生成された潜在フィーチャが示されています。
  • サンプルが表現されると、LDA モデル内のフュージョン サンプルによってトピックの特徴が生成されます。
  • 分類問題の場合、カテゴリ情報は考慮されないため、トレーニングされたモデルからすべてのカテゴリの埋め込みを取得できます。ラベル空間の単語埋め込みを取得するには、論文「テキスト分類のための単語とラベルの結合埋め込み」で提案されているLEAMを参照できます。計算方法: すべてのカテゴリのラベル埋め込みを取得し、入力単語埋め込み行列と乗算し、その結果に対してソフトマックス演算を実行し、注意スコアと入力単語埋め込みを乗算した結果を平均または最大化します。

ここでは、主に次の 3 つの特徴量エンジニアリング手法を使用して、さまざまな特徴量エンジニアリングを組み合わせて新しいサンプル表現を構築します。

  1. まず、単語埋め込みの平均プーリングと最大プーリングを使用します。
  2. 2 番目: ウィンドウ サイズ = 2、3、4 を使用してワード埋め込みの畳み込み演算を実行し、次に最大/平均プーリング演算を実行します。
  3. 第三に、カテゴリタグの表現を使用して、単語とタグの間の意味論的な相互作用が増加し、単語レベルの意味論的情報をより深く検討できるようになります。

手動で定義された機能に基づいて、次のことが考えられます。

  • (生の) テキストの長さ。
  • 大文字の数。
  • 大文字とテキストの長さの比率。
  • 感嘆符の数。
  • 疑問符の数;
  • 句読点の数。
  • 総単語数 (単語数);
  • 固有の単語の数。
  • 名詞、形容詞、動詞の数。
  • 単語の総数に対する一意の単語の比率。
  • 総単語に対する名詞の比率。
  • 単語の総数に対する形容詞の割合。
  • 総単語数に対する動詞の比率。
  • 単語の平均長。
  • 全長に対する句読点の割合。
  • 地名の存在。
  • 人の名前が含まれているかどうか。

私の個人公開アカウント: HsuDanに注目してください。私の学習体験、ピット回避の概要、インタビュー体験、最新の AI テクノロジー情報について詳しく共有します。

おすすめ

転載: blog.csdn.net/u012744245/article/details/124257618