NLP Academy · レッスン

頑健性のための文字 N-Gram

タイプミスや低頻度語に対応する

レッスン 2/413 ステップ

「頑健性のための文字 N-Gram」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。

単語の特徴量は壊れやすい

単語レベルの特徴量は、タイプミスや珍しい綴りに弱い傾向があります。モデルはrunnningをまったく新しい単語として認識するため、1回の入力ミスでシグナルをすべて失う可能性があります。

文字レベルに下げる

テキストを単語全体ではなく、短い文字列に分割します。このように重なり合う部分をcharacter n-gramsと呼びます。

3-gramの例

単語catのcharacter 3-gramsは、単純な3文字の組み合わせです。テキスト上を1文字ずつ移動し、重なり合うチャンクを作ります。

word = "happy"
grams = [word[i:i+3] for i in range(len(word)-2)]

タイプミスに強い理由

単語runとrunnは、character gramsの大部分を共有しています。そのため、タイプミスがあっても、単語全体が消えるのではなく、変化する特徴量は一部だけです。

単語の派生形を捉える

play、playing、playerは、いずれもgram plaを共有しています。Character gramsなら、stemmingを行わなくても、関連する形を自然に結び付けられます。

乱雑なテキストに最適

ソーシャルメディア、ユーザー名、製品コードには、変則的な綴りが多く含まれます。Character gramsは、単語の特徴量が機能しにくい場面でも堅牢に働きます。

文字モードを有効にする

scikit-learnでは、これを1つのパラメーターで設定できます。analyzerをcharに設定し、ngram_rangeを選ぶと、単語ではなくcharacter gramsを抽出できます。

from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer(analyzer="char", ngram_range=(3, 5))

char_wbは単語を尊重する

char_wb analyzerは、各単語にパディングを加え、単語境界の内側だけでgramsを作ります。2つの単語にまたがるgramsを避けながら、堅牢性を保てます。

vec = TfidfVectorizer(analyzer="char_wb", ngram_range=(2, 4))

他の言語にも便利

単語をつなげて書く言語や、語尾の変化が豊かな言語では、単語トークナイザーは扱いにくくなります。Character gramsならその問題を回避でき、言語を問わず使いやすい特徴量になります。

コスト:特徴量が増える

Character gramsは、単語よりもはるかに多くの特徴量を作ります。この追加の次元数にはより多くのメモリが必要になるため、範囲は狭く設定しましょう。

組み合わせて使うのが最適

Character gramsは、単語の特徴量の代わりではなく、組み合わせて使うと効果を発揮します。両者を組み合わせることで、意味と堅牢性の両方を捉えられます。💪

理解度チェック

Character n-gramsがタイプミスに強いのはなぜですか?

まとめ

Character n-gramsはテキストを文字のチャンクに分割し、タイプミスに強く、単語の派生形を結び付けます。scikit-learnでは、単語の特徴量とともにanalyzer charを使用します。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「頑健性のための文字 N-Gram」レッスンは無料ですか?

はい。「頑健性のための文字 N-Gram」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、NLP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 NLP Academyコースには全4レッスンが含まれています。

「頑健性のための文字 N-Gram」で何を学びますか?

タイプミスや低頻度語に対応する ブラウザで直接実行するハンズオンコードでNLP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

NLP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNLP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「頑健性のための文字 N-Gram」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNLP Academyレッスンでコードを書いて実行できますか?

はい。すべてのNLP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Bag-of-Words の先へ
  2. 頑健性のための文字 N-Gram
  3. 複数の特徴量タイプを組み合わせる
  4. 特徴量をスケーリングして選択する
← NLP Academyに戻る