.
pandas & matplotlib Excelファイルの集計と可視化をやってみよう
逆引きPython標準ライブラリ (2018/2)
- python 3.6
- strip(): 文字列内から指定した文字種の削除
- partition(): セパレータで3分割(前、セパレータ、後ろ)。セパレータが見つからなければ、(全体、空、空)
- startswith(), endswith() はtupleで指定してもよく、どれかがヒットすればTrue
- ljust(), center(), rjust(): 左寄せ、中央寄せ、右寄せ
- zfill(): 0詰め
- ord(): 文字コード取得
- リピート連結
*
strでもlistでもtupleでもこれでよい - リストの拡張には、append(), extend()のほか、スライスによる指定も可能
a=[35,36] a[len(a):]=[37,38] # a == [35,36,37,38]
- リストへの挿入についても、insert()のみならずスライスが使える(ただし、挿入する場合は)
a=[35,36] a[1:1]=[37,38] # a == [35,37,38,36] # a[1:1]=39 # "TypeError" a[1:1]=[39] # a == [35,39,37,38,36]
PyTorch自然言語処理プログラミング (2021/3)
- サンプルコード
- pythonの標準リストは数値以外も入れられるので高速演算に向かない。numpyは数値に限定することで高速演算に対応
- しかし、numpyでもGPU演算や微分の機能がない。そこでpytorchではそれらを持つTensorクラスを使う
- tensor * tensorはelement-wise演算。行列演算がしたい場合matmul()を使う
- mv() = matrix * vector
- mm() = matrix * matrix
- bmm() = batch of matrix * matrix
- sin, logなどはtorch内の関数を利用(torch.sin()など)
- 型はdtype or type()(str)で確認
- numpy() や from_numpy() で相互変換
- tensor(n, require_grad=True) で微分の情報を付与できる。ただしnumpyに変換するときはdetachが必要 t.detach().numpy()
- cat(): 行列の縦連結。横連結の場合はdim=1
- GPUで演算するには、tensorとモデルを
to.('cuda:0')
でGPUに移動させる - word2vec, gensim, vocab, 分散表現, doc2vec,
- word mover distance: 2つの文章間の距離。単語ごとの近さの合計が基準だが、文章の長さの違いに対応するため、重みづけ和とし、距離が最小になるための最適化問題の解を距離として採用する
- fastText: facebookが開発したword2vecの改良版
- janome.tokenizer, import pickle,
- LSTM, multi layered LSTM, Bi directional LSTM,
- seq2seq: 系列データから系列データへの変換。文章から文章、画像から画像、音声から音声などなど
- NMT = neural machine translation
- 田中コーパス => small parallel enja
- attention NMT が標準(執筆時点)
- 未知語はsubwordに分解していけば、いずれかの時点で未知語はなくなる
- BPE(byte per encoding): subwordの標準
- SentencePiece: BPEは英語など空白で単語を区切る言語に最適化されていて、日本語で上手く動作しない。そこで日本語に対応させたものがこれ
- BERT (Bidirectional Encoder Representations from Transformer): pre trained model for NLP。文脈依存の多義語対応とfine-tuning対応
- BERTはSelf-Attentionを12回行うことで特徴量を抽出している。
- Self-Attention: 内積のsoftmaxの重みづけ和を行う固定処理。学習対象ではない
- 公開されているBERTモデル:京大版、東北大版、stockmarks, nict, laboro.
- BertJapaneseTokenizer: transformersに標準装備された、bert + jpn + mecabの全部入りクラス
- masked language model
- パラメータ凍結
- distilBERT (ex.) distilbert base japanese
- sentenceBERT
- 含意関係認識