頑健性のための文字 N-Gram
タイプミスや低頻度語に対応する
「頑健性のための文字 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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Bag-of-Words の先へ
- 頑健性のための文字 N-Gram
- 複数の特徴量タイプを組み合わせる
- 特徴量をスケーリングして選択する