TIM Labs
Python_text_mining.jpg
Pythonによる
 
テキストマイニング入門


著者  山内 長承

発行  2017/11

サイズ  A5, 256頁  

ISBN  978-4-274-22141-5

価格  2,500円(本体)  


AI,AIととても騒がしくなり、AIの新刊書が次々と出ているが、その殆どがディープラーニングが対象で、とりわけ画像処理系の本が多い。

しかし、人間のビジネス活動、社会活動、学術活動などを考えると、画像処理関連だけではなく、人間を人間たらしめている言葉、テキストを扱わないわけにはいかない。

自然言語処理、テキストマイニングなどのタイトルの本も、多くはないが、それなりに増えている。

それで、Pythonでテキスト処理の説明をしている本として、本書を入手し、読んでみた。

内容は、

第1章 テキストマイニングの概要
第2章 テキストデータの構造
第3章 Python の概要と実験の準備
第4章 出現頻度の統計の実際
第5章 テキストマイニングの様々な処理例

となっているのだが、第3章までは、Pythonの基本的な説明が中心である。
そして、第4章が統計である。
そして、最後の第5章だけがテキストマイニングになっているのだ。

それでも、統計のために、形態素解析ソフトMeCabを使った例があった。

ということで、テキストマイニング自体の説明は、全体の1/3程度、70ページ位しかないのだった。

第5章の最後に一応Word2Vecの節が設けられており、簡単な説明がされていた。
つまり、やっと話が始まったと思ったら、本が終わってしまったのだ。

巷にはPythonの本が溢れているのだから、Pythonの基本や統計の基本的なことまで載せる必要はないと思う。
それに、ちょこちょこっと載せるだけになるので、とても中途半端なものになってしまう。

ということで、Pythonに慣れていて、統計の基礎も知っていれば、本書は一気に読み飛ばしてしまえる。
まあ、入門書だからそれで良いのかもしれないが、同じページ数で、テキストマイニングについてもっと丁寧な本にして欲しいところだ。

まず、以下の文字を見てみよう。

dakutenhandakuten-1.png通常はありえない場合がいっぱいである。
これを見ると、どうやらあらゆる文字に濁点( ゛ )と半濁点( ゜ )を付けることができるようだ。

どうやったらこんな文字(?)を表示できるかを説明する前に、なぜこういうことを調べることになったかの経緯を説明しよう。

ちょっと自然言語処理の練習をするのに、サンプルデータがいろいろあった方が良いので、このところ流行のWebスクレイピングでサンプル集めをした。
そして、集めた文章を、PythonのGUIであるTkinterのTextウィジェットに表示してみたら、こんな状況になってしまった。

dakutenhandakuten-2.pngブラウザ上やエディタ上では(a)のように見えていたのが、TkinterのTextウィジェット上では(b)の表示になってしまった。
半濁点が1つの文字として、1文字分の文字幅を確保して表示されてしまった。

つまり、「パ」が1文字ではなく、「ハ」+「濁点文字」の2文字になっていたからだ。
それでも、多くのブラウザやエディタでは、直前の文字に重ねて濁点・半濁点を表示していたのだが、一部の文字表示ソフトでは、何も考えず、別の文字として表示処理をしているということだ。

これは、Mac系でよく見られる現象であり、こういう状態のWebページに出会ってしまったのである。

上の (b)を(a)に変換する問題に取り組む前に、Pythonでの文字の扱いをちょっと練習しておこう。

今回は突然だが、文字コードの話をする。
というのは、ちょっとPythonでAI日本語処理らしきことをやっていたら、引っかかってしまったからである。
図に、3つの土を、そのUTF-8のコードと共に示す。

tsuchi-utf8.png引っかかった文字は土の異体字の一つの下図の右端の字である。
今では多くのソフトがUTF-8を標準として採用し、たとえ英語圏で開発されたソフトでも日本語処理に困らないことが多い。
しかし、それは、3バイトの漢字までで、4バイトになってしまう「土の異体字 」は扱えないことに出くわすことが多い。

最近、世のブームに引きずられてという訳ではないのだが、AI、言語処理系の何かをするとき、Pythonはツールが揃っているので使うことが多い。
Python自体は、4バイトの漢字も扱えるのだが、Pythonに非常にたくさんあるパッケージの中には扱えないものもある。

Pythonで文字処理をしていたのだが、GUIを用意しないと不便だなと思い、PythonのGUIツールキットのTkinterを使って簡単なGUIを作りつつあるところだ。
それで、用意してあるテキストファイルを処理しようとしたら、「土屋(異体字)」さんの情報を処理しようとしたところで止まってしまった。

実際には、長いテキストをTextウィジェットに貼り付けるメソッドを呼び出しただけなのだが、エラーが出てしまった。
直接Textウィジェットに、「????」を挿入したらとりあえず文字は表示されたのだが、その後テキストを編集してみたら、消去やカーソル移動が発狂してしまった。

要するに、UTF-8の4バイトコードに対応できていない。
地名、人名などを扱う、つまり事務処理、文字情報の整理などをしようとすると、UTF-8の4バイト文字に必ず遭遇してしまう。

UTF-8は、4バイトどころか、6バイト文字までサポートしているので、完全サポートというなら、そこまでちゃんとやらないとダメなのだが、ASCII文字だけで暮らしているエンジニアが多国語対応すると、こういうことになっているので、気をつける必要がある。

このあたり、東アジアの漢字圏のエンジニアが対処しないときちんとしたものにならないようだ。
昔は、データベースの対応もボロボロだったが、今は良くなっているのかな。






自然言語処理をやろうとすると、日本語の場合全ての文字がベタッとくっついているため意味のある最小単位の形態素(単語)に区切ってから処理する必要がある。
そのために、最初に日本語文字列の形態素解析を行う。
ChaSen, KAKASI, MeCab などがあるが、今はMeCabを使うことが多いのではと思う。
とりあえずフリーで使え、よく利用されているMeCabを紹介しようと思う。

インストールついては、環境によって違うので、MeCab公式サイトを参考にして欲しい。

ということで、さっそく使ってみよう。
実行例はUbuntu上である。
$ mecab 
吾輩は人工知能である。
吾輩	名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
人工	名詞,一般,*,*,*,*,人工,ジンコウ,ジンコー
知能	名詞,一般,*,*,*,*,知能,チノウ,チノー
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
。	記号,句点,*,*,*,*,。,。,。
EOS

mecab[Return]とすると、入力を受け付けるので、何かを入れて[Return]すると、形態素解析した結果が示され、また次の解析対象文字列の入力待ちになる。
入力した文字列には下線をつけた。
ゼロ9784873118369.jpgから作るDeep Learning?
自然言語処理編

斎藤 康毅 著

A5版、448ページ
2018/6/25 発売
3600円(本体)
オライリー・ジャパン
ISBN-13: 978-487311-836-9


本書、発売が6月25日ということで、まだ発売されていないのだが、紹介しようと思う。
オライリーのホームページのオラの村に、以下が用意されているのだ。

『ゼロから作るDeep Learning ?』公開レビューのお知らせ

公開レビューということで、まだ執筆、修正中なのだが、できるだけ多くの人に読んで様々な指摘をしてもらい、修正に反映させようということである。

言い方は色々あって、公開レビュー、プレビュー、Early Release、 Early Edition などがあるだろうか。

オライリー本社の方からは、例えば "Tensor Flow for Deep Learning" の Early Release がある。

正式発売前に、まだ未完成でも読んでみたいという人はいる。
そういう人は、一般に能力も高く、情報は人より一足先に入手する。
そういう人々からの指摘を取り入れると、本がより良くなる。from_zero_deep_learning (283x400).jpg


さて、『ゼロから作るDeep Learning ? ―自然言語処理編 』であるが、コンピュータ出版業界で空前のベストセラーになった『ゼロから作るDeep Learning―Pythonで学ぶディープラーニングの理論と実装』の続編で、今度は自然言語編である。
大いに期待できるのではと思う。

なお、公開レビュー版なので、あれこれ書評は書かず、お知らせだけで終わりとする。

◇  ◇  ◇
日本では少ないと思うのだが、海外では執筆中から公開されていたり、発売されてもそのまま公開が続くことは多々ある。それも、非常に有名で、よく売れている本でそうなっていることがある。

日本の大学も、このくらいやってくれたらと思うが....

AI2025.jpg
人工知能と社会
 
2025年の未来予想

監修  AIX(人工知能先端研究センター)

著者  栗原 聡、長井 隆行、小泉 憲裕、内海 彰、坂本 真樹、久野 美和子

発行  平成30年2月15日

サイズ  A5, 235頁  

ISBN  978-4274221811

価格  1,800円(本体)  


最近、とにかく人工知能の本の出版が多い。人工知能とは.jpg
そして、表紙がマンガ、アニメ的になっている場合が多々ある。
こうなったのは、人工知能学会の学会誌の表紙の影響が大きいのではないかと思う。

しかし、表紙が軽い感じだから中身も軽いかというと、そうとは限らない。
どちらかといと、ギャップがあることが多い。
そのきっかけになったのが、人工知能学会から出した『人工知能とは』ではないかと思う。
この本、縦書きの本だったのだが、めちゃくちゃ内容はハードだった。

そして、今回のこの本だが、やはり縦書きである。
イラストがちょこちょこ出てくるのだが、書いている内容は軽くはない。
つまり結構重い内容なのだ。

電気通信大学にはAIを研究している研究者が多数いて、学内にAIX(人工知能先端研究センター)を立ち上げた。
そのメンバーの中の6名で書かれたのが本書である。

テーマは、2025年の人工知能の社会実装の予想を、研究者の立場から書いたものである。
2025年というと、あと7年先。
7年というと、一般社会の常識からいえば、それほど社会は変化しないだろうと考えるだろう。
しかし、人工知能に関して7年は相当な変化があると考えられる。

去年くらいから、人工知能を使ったさまざまなシステムが氾濫している。
実際、十分な良質なデータが用意できれば、なかなか良い結果が得られる、得られることがあるのはわかってきた。
そういうことで、試作して様子を見る段階から、実運用に次第にシフトしているのも事実だ。

しかし、人工知能を用いたシステムの場合、テストが難しい。
それも、人工知能ゆえの本質的な難しさがある。
今回は、それについて、まだぼんやりしている私見を書いてみた。あくまで私見である。

人工知能においては、データを、学習用とテスト用に分けて、学習が進むと、テストデータによる評価も上昇し、結果が満足できるようになったところで、この人工知能は十分に賢くなった、使えると判断することが多い。
しかし、それだけで、人工知能システムが正常に動く、さらには実運用に使う、つまり社会の中で使ってよいのだろうかという問題がある。

学習データに入っていることは、まあ正しい結果が出るだろう。
テストデータについては、用意されたデータが入力された場合には、まあまあOKということに過ぎない。

人工知能は、しっかり検討して作られたモデルに従って動いているわけではない。
それどころか、モデル、処理の仕組みを考えるのを放棄して、人工知能にその仕事を押し付けているようなところがある。
大量のデータから、ある種のモデルをコンピュータ内に作るわけだが、同じデータを入れても同じモデルができる訳ではない。というより、同じデータを利用しても毎回違う結果になる。
これは、確率、統計にしたがって、テキトウに学習するので、そうなってしまう。
それでも、何らかのモデルがコンピュータ内に構築されているのだから、それを調べればといっても、できあがったモデルはブラックボックスである。

今の人工知能では、学習データにあった内容については非常に良い結果、専門家よりはるかに優れた結果を出すことがよくある。
しかし、データに用意されていなかったようなデータが来た場合、結果はどうなるか分かったものではない。

どうしても現状で使いたいが、安全性も保証したいと思うと、人工知能の結果を別の方法で安全チェックしないといけない。
ダメなら、安全チェックを通過するまで再計算するという手はある。
でも、これが使えるのは、リアルタイム性を要求しない場合に限られる。
運が悪いと、永久に再計算をし続けることもありうる。

今の人工知能は、ディープラーニングに限らず、進化計算などでも、基本は確率統計の罠から抜け出せない。

安全性は、どのくらいにすれば良いのだろうか?
社会は、コンピュータには100%の正解を求めるのが常だ。
人間は間違えるもの、コンピュータは間違えないもの、という考えが強い。

しかし、人工知能は脳、遺伝など生物を手本にしているのに、コンピュータは間違えないというのは無理難題である。
人工知能も人間程度、有能な人間程度には間違いを犯すこともあるのは必然なのではないだろうか。

人工知能の納品検査について考えてみよう。
人工知能を利用したシステムを発注して開発が終わり、納品検査をするとき、どうすれば良いのだろうか?
確率統計にしたがって動くシステムで1000回テストしても、1001回めには異常が発生する可能性がある。
さらに、統計確率的に動く世界なので、プログラムにバグが入っていても、統計的に誤魔化されてしまう可能性も高い。
いずれにしても、今までの納品検査の考えをそのまま当てはめるのは困難であるのだが、人工知能を利用したシステムを発注する側に、それだけの考えが無いことが多く、実際色々問題になっているようだ。

....と書いただけでは説得力に欠けると思われるので、このような分野の論文を1つ紹介しておく。

機械学習工学に向けて、丸山宏著、日本ソフトウェア科学会第34回大会(2017年度)講演論文集

日本ソフトウェア科学会

丸山宏氏は、あのChainerで有名な株式会社Preferred Networksの最高戦略責任者(Chief Strategy Officer)である。

この問題は、たぶん今年さまざまな形で取り上げられ、研究会なども立ち上がるのではないかと思われているようだ。
ChainerContentsGenAI.jpg
Chainerで作る
コンテンツ自動生成AI
プログラミング入門


著者  坂本俊之

発行  2017年12月22日

サイズ  A5, 264頁  

ISBN  978-4863542341

価格  3,420円(本体)  


またまたChainerの本を紹介する。
Chainerに限らないのだが、ディープラーニングの本というと、画像の分類、判定の紹介が圧倒的に多い気がする。
それも、ほとんど同じデータを使っていることが多い。

本書は、そういう本ではなく、ディープラーニングの入門書ではあるのだが、AIを使って何か自動生成するプログラムの紹介が中心である。
画像の場合、自然言語(日本語)の場合、それらの組み合わせを紹介している。

これだけやろうとすると、単にPythonとChainerをインストールするだけでは不足である。
計算量が増えるので、GPUを使えるように、CUDAのインストールも必要である。
その他にも、いろいろインストールするのだが、省略する。
この分野ではソフトウェアのバージョンアップが頻繁に行われており、デバイスドライバからさまざまなツール類まで、バージョンを合わせておかないとインストールできても実行時にバージョン不整合のエラーが出ることがある。

実際、以前Chainerをインストールしたままの状態で実行しようとしたらダメで、バージョンアップが必要になった。
それで、エラーに対応する部分だけをインストールしたら、今度はバージョン不整合が出てしまったのだ。
結局、Chainer, CUDA, デバイスドライバ関係を全部消して入れなおした。
全体で2GBを超えていたが、今の時代、この程度は軽々とインストールできてしまう。

2月20日に、電気通信大学の中のAmbient Intelligence Agoraで、セミナーをやってみた。
大学がちょうど期末試験が終わったところで、先週までたくさんの学生が図書館にいたのだが、試験が終わったとたんに、図書館はもちろん学食もずいぶんガラガラになってしまった。
学食はメニューの種類が減って、ちょっと残念な状態であるが、お客である学生がいないのだから仕方ない。

まあ、そういう状況であったが、いろいろAI的な仕掛けが施されている図書館で何かやらないかということで、とりあえずAgoraでセミナーをやってみた。
ここは何と言っても、AI妖怪図書館を目指しているのが特徴だ。
電通大、調布といえば、ゲゲゲの鬼太郎であり、ゲゲゲの鬼太郎のような良い妖怪が助けてくれる図書館を目指しているらしいということで、準備としてちょっと勉強もした。

gegege-1-5.jpg勉強するための本の入手には、水木しげるの本がしっかり並んでいる妖怪書店(調布駅と電通大の中間点にある)真光書店でしっかり選んだ。
妖怪自体の研究だが、これは『ゲゲゲの鬼太郎』全5巻を読破した。
作家の水木しげるについても知っておくべきだと思い、『私はゲゲゲ』で勉強した。

これだけ勉強したのだが、電通大のAI妖怪図書館についての理解が深まったどうかには自信がない。

とにかく、セミナーをやれば、何か分かるかも、感じられるかもと思ってやってみた。
かなりガラガラだったので、隅の方ではなく、比較的中央の広いところで1時間半ほどのセミナーをやった。

セミナーの内容は、当然パズルである。
パズルそのものの話もしたのだが、パズルの技術を応用することで、今まで困難と思われていたことがすんなり出来てしまったことなどを話した。

近くの天井には、いろいろなセンサーが設置されている。
中には、カメラやマイクなどもあるが、カメラの位置は固定で、方向やズームは自由にできるようになっていたが、セミナーの間にどのように操作されたかは分からないのであった。

昔の図書館は、静かに本を読む所という印象が強いのだが、今の図書館ではそんなイメージはどんどん薄れているというか、どんどん薄めていこうという図書館側の意志が見受けられた。

教室でおこなうセミナー、講演、講義とはかなり感じが異なる。教室の場合は、基本的に壁に囲まれているのだが、電通大の図書館のAgoraはかなり広い空間で、まるで広場でやっている感じだった。

次回も予定があるのだが、それよりも、この図書館がどのようになっていくのか、少々情報を入手した。
詳細は、さらなる図書館の改修が行われたときに図書館の方から発表があると思われるので、聞きかじっただけのあやふやな情報を書くのは控えておく。
まだまだ色々なセンサーがこっそり(?)仕込まれて、さらに色々な情報が収集され、分析され、生かされていくようだ。
こうして、どんどんAI妖怪図書館になっていくようだ。


電気通信大学(調布市)は、元は無線の学校として始まったのだが、通信、コンピュータなどに特化した大学として、IT業界では非常によく知られている。
ここ10年くらいはコンピュータ囲碁、コンピュータ大貧民の会場になったりというユニークな活動もある。
これらは、人工知能と深く関わっており、人工知能系の教員が充実している数少ない大学の1つである。

一昨年、人工知能先端研究センターが設立された。
電通大の100周年記念キャンパスのUECアライアンスセンターのオープンと共に、汎用人工知能研究拠点AIXがセンター内に設けられた。

このところ汎用人工知能という言葉が乱れ飛んでる。
今成果を挙げているのは、極めて狭い特定分野に特化した人工知能である。
しかし、それだと、分野毎に延々と作らねばないし、状況が変化したらまた作り直し、あるいは学習のやり直しになる。
そうではなくて、人間のように柔軟に様々なことに対応できるような汎用人工知能を電通大のAIXは目指しているようだ。

汎用人工知能と言われても、それだけではあまりにも漠然としている。
電通大のAIXのコンセプトが説明されているページがちゃんとあった。

AI妖怪

余計わからなくなっただろうか。

最近のコメント