機械学習・自然言語処理の勉強メモ

学んだことのメモやまとめ

CRF

PyTorch:Bi-LSTM+CRF②(予測)

はじめに 前回は学習に関するコードを読んだ。 kento1109.hatenablog.com今回は「予測」の部分を読んでいく。 予測 予測時は、viterbi algorithm を用いて効率的に計算する。 最後に_viterbi_decode関数を確認する。 _viterbi_decode グラフの最短経路を求め…

PyTorch:Bi-LSTM+CRF①(学習)

はじめに 今回は、Bi-LSTM+CRFに関して整理する。 最近の深層学習を用いた系列ラベリングに関する論文は、この手法でSOTAを達成していることが多い。尚、Bi-LSTM+CRFの基本的なことに関しては、以前のTheanoでの記事で述べた。 kento1109.hatenablog.comTh…

TheanoでNER(CRF)

前回まででメインとなるLSTM層を説明した。 kento1109.hatenablog.com今回はCRFによる出力部を見ていく。元となるコードを再掲 github.com CRF 簡単に言うと、「識別モデルを用いて系列ラベリングの問題を学習するもの。」詳しくは前回まとめた。 kento1109.…

CRFについて

CRF

はじめに CRFはConditional Random Fieldsの略。識別モデル(からを直接推定するモデル)の一種。HMMを識別モデル(最大エントロピーモデル)に適用したものと考えると分かりやすい。 それぞれは下記でまとめた。 隠れマルコフモデル(HMM)について - 機械…

TheanoでNER(モデル構築)

前回は前処理部分を簡単に理解した。 kento1109.hatenablog.com 前回も載せたがコードはここ。 github.com今回はメインのモデル構築について整理していく。 モデル構築(model.py) train.pyの f_train, f_eval = model.build(**parameters) でモデルを構築…

TheanoでNER(前処理)

NER(Named Entity Recognition) 系列ラベリングの一種。 日本語では、固有表現抽出と言われるタスク。具体例としてはこんなの 太郎は5月18日に花子に会いに行った。 これに含まれる固有表現を抽出(タグ付け)すると以下となる。 <PERSON>太郎</PERSON>は<DATE>5月18日</DATE>の<TIME>朝9時</TIME>に<PERSON>花</person>…