自然言語処理編では、
1.1、ユーザーローカル(Webサイト)による文章解析
1.2、Wikipedia学習済み言葉の足し引き算(Word2vec)
1.3、文章自動生成 By Google TPU (LSTM)
を扱っていきます。
私たちの使う「日本語」や「英語」など、人間が自然に使用している言葉を『自然言語』といいます。言語学と計算機科学の一分野です。日頃、我々の使用する自然言語をコンピュータに処理させ、文脈を整理したり、意味を解析したりする学問です。(Wikipediaを要約)
② 好きな文章を貼り付けてみましょう。
③ 下の画像のように、様々な分析手法でテキストが解析されていきます。
説明をすべて書くのは大変なので、どのように解析されたのかユーザーローカルさんの説明を読んでください。
難易度:★★☆☆☆
Wikipediaの日本語ページすべてを用い、一晩かけて単語をすべてベクトル化してみました。まずは、ベクトル化するとどうなったのか、少し遊んでみましょう。
① サンプルコードにアクセスします。
https://colab.research.google.com/drive/1dMtBqrGKCsfICJufn2O0YZ3MqxfITVW5
②下の画像のように、「ドライブにコピーを保存」をクリックします。
③ 各セル(コードの書いてある枠のこと)の左側にある右三角(▶)を上から順にクリックしていきましょう。
これを実行すると、「パリ」ー「フランス」+「日本」≒「東京」などの言葉の足し引き算が行えます。正しく行われたかを試してみてください。
④ 次に、足し算・引き算の言葉を変えてみましょう。現状、「"囲碁"」となっている個所を「"高校"」などとすれば「高校」の類似語が出ますし、「"こんにちは"」とすれば、「こんにちは」の類義語が表示されます。もしエラーとなった場合は、その単語がWikipede上に存在しないか、「東京大学」が「東京」+「大学」のように、複数の単語に分解されてしまった可能性があります。
※足し算・引き算も同様です。positive=["パリ","日本"]のところに足したい言葉、negative=["フランス"]のところに引きたい言葉をリストアップしましょう。エラーが出たり、分からなくなったら、お気軽にお尋ねください。
難易度:★★★★☆
既存の文章から、前の文字列から次の文字を予測し、それを繰り返すことで文書を生成していきます。小説家になろうで人気No.1となっていた「陰の実力者になりたくて」をもとに学習し、4万字程度を自動生成した結果、次のような感じの文章が生成されました。
全文はこちらから。
① サンプルプログラムにアクセスします。
https://colab.research.google.com/drive/1vG1curWxFU0DQaU5YyVB2jlpO9QvMcDv
② 演習1.2と同様に自分のGoogleドライブにコピーしてください。
③ 上から順に実行していきます。
④下の画像のようなボタンが表示されたら「ファイル選択」をクリックし、学習させるテキストデータをアップロードします。
⑤ その後もセルを実行していくと、文章が生成されます。
今回のサンプルプログラムでは、日本語Wikipediaの全文データを使用しましたが、他の文章を使って学習させることも可能です。夏目漱石の文章のみで学習させてみると夏目漱石の小説内での世界観がわかりますし、AKBの歌詞で学習させれば、AKBの歌の世界観で言葉の足し引き算や、同じ使われ方をしている単語がわかります。