調べてみたところ、良さそうだったのが
でした。
pythonでダウンロードするので、開発環境は必要になります。
インターネット上にある断片化された情報を切り取って、リブログする。 主にソフトウェア、Ubuntu関連、CPUなど気になったニュース、また、日々の面白い出来事やニュースもリブログします。
自然言語について興味があるけど、いろんな単語があって頭に入ってこなかったので、単語メモを書きました。
読んだ本はこれです。
自然言語処理するサンプルコードもあって、すごく丁寧に書かれていていますが、私のような初学者にとってはまず単語が分からないので、これから書く単語一覧である程度予備知識を入れてから読み始めることをオススメします。
自然言語処理とは
人が日常的に話している言葉をターゲットにした処理のこと。
コーパスとは
学習データ一式のこと。
自然言語処理における機械学習とは
事前学習モデルとファインチューニング済みモデルを使って結果出力する。
事前学習モデルとは
大量の一般文書データ(ラベルなしコーパス)を学習させたもの。
ファインチューニング済モデルとは
ラベリングされた文書デー(ラベルありコーパス)を学習させたもの。
ラベルとは
何が正解かを結びつけるもの。
統計的解析手法
SVMや解析木などを用いて、コーパス内の入力単語数をカウントしてベクトル表現を行う。
単語の並び順を考慮しないため、単語の出現頻度で文章を判定するもの。
単語ベクトル辞書
Word2Vecというニューラルネットワークによって一般化され、Skip-gramという手法で単層ニューラルネットワークで学習する事が可能。
空間座標上で単語ベクトルが近しいものがクラスタ化され、単語ベクトル同士の演算で単語の意味を抽出する事ができるのが特徴。
RNNによる自然言語処理
Seq2Seqというモデルで、時系列的に可変長の入力データを扱えるRNNで構築したもの。
統計的解析手法と比べて文章の文脈を扱う事ができるのが特徴。
RNNとは
入力と出力の他に内部ステータスが存在していて、単語を繰り返し入力していくと、入力履歴に基づく内部ステータスが作成されるもの。
BERTとは
事前学習モデル+ファインチューニング済モデルというTransfermer学習モデルを決定づけた手法。
最初にすべての単語を入力して、文章の文脈に沿った単語・フレーズ・行単位、文書全体の意味をベクトル表現することで、文書のクラス分類や部分文章の抽出などができるのが特徴。
Transformerとは
2022年時点で最も汎用性があって精度の高いモデルで、GPTやXLMなど様々なバリエーションがあり、文章の生成や機械翻訳、要約やチャットBOTなどが行えるものがある。
Huggingfaceサイト
80種類以上の機械学習モデルが登録されて、それらを利用できる。
利用するためのサンプルコード
pip3 install torch torchvision torchaudio pip3 install transfermers from transfermers import AutoTokenizer, AutoModelForMaskedLM tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased") model = AutoModelForMaskedLM.from_pretrained("bert-base-uncased")