2022年8月24日水曜日

株価をダウンロードする方法

 調べてみたところ、良さそうだったのが

yahoo-finance-api2

でした。

pythonでダウンロードするので、開発環境は必要になります。

2022年8月23日火曜日

NLP自然言語処理①(単語帳編)

学習前に

自然言語について興味があるけど、いろんな単語があって頭に入ってこなかったので、単語メモを書きました。

読んだ本はこれです。


自然言語処理するサンプルコードもあって、すごく丁寧に書かれていていますが、私のような初学者にとってはまず単語が分からないので、これから書く単語一覧である程度予備知識を入れてから読み始めることをオススメします。


【単語一覧】

 自然言語処理とは
 人が日常的に話している言葉をターゲットにした処理のこと。

コーパスとは
 学習データ一式のこと。

自然言語処理における機械学習とは
 事前学習モデルとファインチューニング済みモデルを使って結果出力する。

事前学習モデルとは
 大量の一般文書データ(ラベルなしコーパス)を学習させたもの。

ファインチューニング済モデルとは
 ラベリングされた文書デー(ラベルありコーパス)を学習させたもの。

ラベルとは
 何が正解かを結びつけるもの。

統計的解析手法
 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")




Androider