Boost camp週間6追加学習


Ubuntu Metacbのインストール


Macにインストールするのは少し簡単ですが、WindowやUbuntuにJDKをインストールする手間や追加の設定が不便になります.この問題を解決するためのハーブのリンクを共有します.
Ubuntu 18.04 Mecabインストール

コードコメント


コード#コード#の様々なコードについてコメントします.
これはRNNを使用して言語モデルを作成するコードで、RNNモデルコードにforwardに対応するコードが表示されます.
def forward(self, input, hidden):
        emb = self.drop(self.encoder(input))
        output, hidden = self.rnn(emb, hidden)
        output = self.drop(output)
        decoded = self.decoder(output)
        decoded = decoded.view(-1, self.ntoken)
        return F.log_softmax(decoded, dim=1), hidden
RNNにinputとhidden stateを加えます.各Dimensionは次のようになります.
Input : (Seq_length, Batch)
hidden : (Num_layers×\times×dir, Batch, Hidden_dimension)
この場合、InputはEncoderを通過し、Encoderはnnを通過します.Embeddingを使用して単語ベクトルを埋め込みdimに変換します.したがって,embの次元は以下のようになる.
Emb:(Sequence Length,Batch size,Embedding dimension)Emb : (Sequence\Length, Batch\size, Embedding\dimension)Emb:(Sequence Length,Batch size,Embedding dimension)
このときoutputは、時間ステップごとのhidden statesセットとして表示されます.
その後、言語モデルに基づいて、各時間ステップのhidden stateを復号する.Hidden dimにデコード×\times×ntokens nn.線形変換モジュールは、結果をソフトmaxで特定の単語に変換します.decodedの結果は(Seq length,Batch,ntoken)の形式であり,view関数を用いて(−1,ntoken)の2次元データに変換される.
例えば、Seq lenは35、batch sizeは20、Num layers×\times×dirを1,ntokenを3000とする
入力:(35,20)Decode(最終):(700300)入力:(35,20)Decoded(最終):(700300)入力:(35,20)Decoded(最終):(700300)
すなわち,このモデルにより,任意のseq lenを有するbatch sizeの文データを入力すると,その単語の後に予め指定されたCorpusのサイズ(ontoken)に基づいて予測することができる.

NSMC応用モデル

  • NSMC EDA
  • データセット、main、分離モデルファイル