pytorch-transformersはじめに前回はの入門ということで、QuikStartの内容を触ってみました。kento1109.hatenablog.com前回は英語でしたが、日本語のテキストを扱う場合はそのまま使うことは出来ません。いうことで、今回はpytorch-transformersで日本語のテキストを扱ってみようと思います。modelとしては、京大の黒橋・河原研究室が公開しているものが有名です。LABこのリソースを利用した既存のやってみたシリーズとしては以下などが参考となります。Out-of-the-box今回はこちらのリソースを活用して色々と触っていきます。準備ホームページより、Japanese_L-12_H-768_A-12_E-30_BPEをダウンロードします。modelは、Jumann++で形態素解析を行っているので、Jumann++をインストールしておきます。インストールしておきます。以下のようにpythonから形態素解析が出来れば準備OKです。'うち']ただし、今回は触ってみることが目的なので、前処理の形態素解析は必ずしも必要でないです。読み込み前回は、以下のように文字列を指定してをロードしました。BertModel.from_pretrained('bert-base-uncased')今回は、ダウンロードしたpytorch_model.binを指定して読み込みます。12-head)で行ったそうです。byteしかし、この場合UnicodeDecodeErrorが発生します。少々勝手が異なるみたいです。parameters.に関連する箇所が怪しかったので、以下のようにしてconfigclasssを引数に与えました。config=config)とりあえず、エラーは出ていないので問題なさそうです。bertForMaskedLM前回同様に、文の一部をMASKする問題を試してみます。config=config)この場合の出力は単語数となります。bias=False)となっているのが分かります。「僕は友達とサッカーをすることが好きだ」の文を形態素解析します。'好きだ']となります。続いて、BERT用の入力に整形し、「サッカー」をMASKしてみます。'[SEP]']日本語の辞書ファイルを読み込みます。do_basic_tokenize=False)一応、入力系列を確認してみます。3]])ここまで来れば、言語は関係ありません。'サッカー']5番目にサッカーと予測できています。その他も、MASKとして妥当そうです。[SEP]は必要??ここで、思ったのですが、単文の場合は末尾に[SEP]は必要なのでしょうか。試しに[SEP]無しで予測した結果が以下の通りです。'セックス']サッカーは挙がってきませんが、概ね結果は同じです。(サッカーの代わりにセックスと予測したのはなかなか面白いですね。)ここから、[SEP]が予測結果に影響を与えていることが分かります。[SEP]は付けておいた方が無難かと思います。(他では結果が異なるかもしれませんが・・)おわりに今回は、pytorch-transformersで日本語のテキストを触ってみました。tuningで目的のタスクに応用してみたいと思います。前回は日本語でのpytorch-transformersの扱い方につい...2019-08-20pytorch-transformersを触ってみる1今更ながら、pytorch-transformersを触ってみます。2018年のNLPの主役は「BERT」で間違いないでしょう。Samplingの復習Pytorch:CNNで文字表現の抽出pytorch-transformersを触ってみる5pytorch-transformersを触ってみる4pytorch-transformersを触ってみる3月別アーカイブはてなブログをはじめよう!kento1109さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。