本書は、プログラミング言語Pythonによる自然言語処理を、
「面白さ」「ユニークさ」を追求したサンプルプログラムで学べる入門書です。
●「オレ ニク タベル ウマイ!」原始人語の翻訳機を作ろう
●メロスはいつまで激怒していた? 原作から心情を分析!
●あの文豪が新作を書いたら? 架空の小説を執筆しよう
●コンピューターは「群馬」と「栃木」の違いを見分けられるのか?
●「ナミ」と「フネ」から「サザエ」は生まれる? 子どもの命名AIを作ろう
●AIが三国志を読んだら、武将たちのライバル関係を理解できるのか?
●「赤の他人」の反対は「白い恋人」? あらゆる対義語を自動生成しよう
プログラムは、すべて実行ボタンひとつで簡単に動くため、
プログラミングに慣れていなくても、すらすら読み進められます。
また本書では勉強にはつきものの、
難しい専門用語の解説や、複雑な数式の説明は登場しません。
まずは、奇想天外なサンプルを動かして、楽しく遊んでみてください。
勉強をしているつもりはなくても、いつの間にか、
基本的な知識や、分野の全体像が身についているはずです。
【こんな人におすすめ!】
・Pythonによる自然言語処理を学びたい初心者
・他の入門書を読んで、挫折してしまった人
・プログラミングでとにかく面白いことがしてみたい人
■第1章 1行で愛を作る
環境構築の手間がゼロ:Colaboratory
Colaboratoryの始め方
Pythonの基本練習
1行で愛を作るプログラム
Colaboratoryの特性/注意事項
オマケ:その他コード集
■第2章 ハロー!ゲンシジン!
1分でわかるゲンシゴ講座
コンピュータで日本語を処理する方法
オレ 形態素解析 スル!
オレ Janome ツカウ!
オレ ゲンシゴ ホンヤク スル!
オレ トモダチ タクサン!
発展(1):オレ 魏延 ナル
発展(2):某田舎訛りの戦闘民族用語変換器
発展(3):お嬢様コトバですわ!
■第3章 メロスの激おこ具合を冷静に可視化する
ネガポジ分析とは?
ネガポジ分析をやってみよう!
メロスはどれくらいで冷めたのか?
青空文庫から一発でデータを引き抜く秘密の方法
グラフ表示のための準備運動
メロスの感情を時系列でグラフ化する
■第4章 江戸川&コナンの小説を自動生成してみる
無限の猿に小説を書かせる
江戸川&コナンの単語を学習した猿をさらに強化する方法
小説データの収集はLAN姉ちゃんにお願い!
解凍きっと大丈夫。鮮やかにzipを盗むトリック
全小説データの取得&加工一括処理
分かち書きを行う関数の実装
マルコフ連鎖の実装
いよいよ文章を生成
江戸川&コナンの合成結果
マルコフ連鎖の応用
■第5章 「??」−「群馬」=「宇都宮」-「栃木」を機械に求めさせる
Word2Vecとは?
学習済みモデルの入手
「群馬」に似ている単語は?
「カレー」に似ている単語は?
(発展的寄り道)群馬の中身を見る
「??」-「群馬」=「宇都宮」-「栃木」
(発展)Word2Vecの誤解しやすい点
■第6章 両親の名前の漢字を足し算して、子供を命名するAIを作る
AIの作成方針
(1)大量のテキストデータを用意する
(2)AIに「漢字の意味」を学習させる
(ご参考)AIが学習する原理の超概要
(3)AIに命名させてみる
国民的有名家族の名前を計算する
春日部の名誉市民の名前を推定する
■第7章 もしAIが三国志を読んだら。孔明や関羽のライバルは誰なのか?
主な登場人物紹介
英傑たちの住む天国(?)での会話
もしAIが三国志を読んだら
全体方針:天下三分の計
第一話:げぇっ!関羽!
第二話:反董卓連合軍
第三話:孔明の罠
第四話:10万字の文字集め
第五話:赤壁に燃える
第六話:わしをベクトルにできるものはおるか!?
第七話:曹操には張遼がいる、わしには甘寧がいる
最終話(オマケ):梅園の主人公談義
■第8章 「赤の他人」の対義語は「白い恋人」、をAIで自動生成する
「赤の他人」の対義語は「白い恋人」
Word2Vecの弱点は「対義語に弱い」こと
Word2Vecで反対側の単語を見てみると?
対義語は賛成の反対なのだ。これでいいのだ。
演算に使う対義語ペアを探す(1)
Word2Vecの注意:「ぱんだ」はいないよ
演算に使う対義語ペアを探す(2)
単語対義語化関数
文章対義語化関数
対義語という崇高なテーマ
■第9章 天才的なアイデアを出して開発するための5つのコツ
新しい「えんぴつ」を考える思考実験
Step1. 良いアイデアとは「思いもよらなかったもの同士が結びつくこと」
Step2. まずバカになって人に笑われよう
Step3. 良い子の常識をブチ壊そう
Step4. HBのえんぴつをベキッ!っとへし折ることと同じようにできて当然と思うこと、認識することが重要
Step5. 大量×四則演算で練る
まとめ
■付録 青空文庫からのダウンロードと加工用のスクリプト
青空文庫ダウンロード&加工の共通コード
本コードの使い方(第3章、第7章の例)
付録のコードの詳細解説
(1)青空文庫からのダウンロード&zip展開&テキスト抽出
(2)青空文庫のデータを加工して扱いやすくするコード
(3)複数ファイルのダウンロードや加工を一括実行する関数