人工知能についてあれこれ本を読んだり調べたりしたので、ブログにもちょろちょろっと書いていく。
自分みたいな商店街のおっちゃんがAIについて解説してなんになるんだという話しはおいておいて、ちょっと量が多いので数回に分ける予定。今回はAIの定義とさわりの部分とAI文章について書くよ。
AIにはいろいろな概念や定義があって、よくわからんよね。
- Artificial intelligence ← 人工知能
- Addisional intelligence ← 人間の拡張知性としての人工知能
- Agri-Infomatics ← 農業×AI的な略語をAIに寄せた何か
などなど。その他大勢。
ここでは「Artificial intelligence」と限定するが、限定したとしても、マーケティングAI、弱いAI、強いAI、強いAIを超えるAIというようなそこから枝分かれしていたりする。
AIというと、アンドロイドやサイボーグのような未来SF的なものをイメージする人もいれば、ルンバに入っているアルゴリズムのような技術的なものを連想するひともいる。マーケティング用語としてのAIがちょっと目新しいアルゴリズムを載せただけのものをぐいぐい押してくるので混乱に拍車をかけている。
知能とは何か、知性とは何かがそもそもうまく定義できていない、もしくは暗黙知として共有されていない状態下で人工知能を定義しようというのに無理があるのだ。つまり、偉い人達はなんやら定義を言っているけれども実質人工知能についてはあんま共有できてないし、時代に応じて変わりそうだよねって状態だ。
日本語の自然言語処理
日経がやっている星新一賞というものがある。もう第三回を数えるそうだ。
きまぐれ人工知能プロジェクト 作家ですのよ
www.fun.ac.jp/~kimagure_ai/results/index.html
この文章は実はAI(とされるもの)が作文したものである。
人間がプロットを作成し、それに沿ってコンピューターが作文するいわば人間とAIの合作だ。これが、コンテストの一次審査を突破したそうな。このAIもプロットを作る側の人間と同じところがやっているので、それってただの作文補助ツールじゃね?ということもできるが、まあ、まあ、まあ。
AIによる作文もここまできましたという例です。
作中の素数、フィボナッチと来てオチの数列の意味がわかんないので誰かおしえてください・・・。
もし、AIと人間が書いた文章と区別できなくなれば世界はスパムメールで再び溢れかえるかもしれないね。
この自動合成のあたりの手法に興味があって深掘りしたければ、マルコフモデル(これってマルコフニコフ則と関係あるのかな?)だとか、ワードサラダだの、ベイジアンフィルタだのをたどればいいんじゃないかな。
人工知能による自然言語処理
この分野、日本はとても遅れているように感じる。
海外ではプロスポーツの速報結果などは既に自動作文になって久しいし、大手新聞社も長文を読者の住所に応じて動的生成するなど意欲的な取り組みが絶えない。
business.newsln.jp/news/201511080445270000.html
記者の記名記事以外は感想ではなく客観的事実にもとづいて事実を報道することが求められるので、人間の介在は必要なくなっていくのも自然の流れだ。
この分野で日本が立ち遅れているのにはわけがある。
いや、別に報道と権力が近すぎて報道の自由がダメダメで、編集にある種の意図が介在しているからダメとかそういうところでは(今回は)ない。(youtubeでデビッド・ケイで検索してでてくる案件のことね)
日本語が他の語族体系と構成が遠く、アルタイ語族(ウラル・アルタイ諸語)に類する類語が韓国語ぐらいしかないために両方の話者を集めても1億5千万人程度しかおらず、正直あまり熱心に研究されているとは言いがたい状態にあるためだ。
インド・ヨーロッパ語族をはじめ多くの言語では単語ごとにスペースなどで区切られていて単語や文節がはっきりしている。逆に日本語は文意を探る前に形態素解析をしなくてはならない。
形態素解析をしてよしんば品詞ごとにわけられても、そこから正確な文意を汲み取るのが厄介なのだ。
「おみおつけとお味噌汁が違うものだなんて別にそんな事はなくはなくってよ。」
※この記事の最後に形態素解析したらどうなるかをつけておく
人間にはなんということもないふざけた一文なのに、どのような品詞構造になっていて、文法構造はどうだ、否定の係り受けはどうなっているんだとかを分解しようとすると心が折れる。「おみおつけ」は一体ぜんたいどんだけ丁寧語の接頭字なんだ!みたいな。
「人造寅次郎」というような適当に漢字を並べただけで自由に造語が容易につくれるのも厄介なところだ。言葉が音を表したものではなく、漢字圏は意味を表した表意文字なので単語が話者の発音に囚われず無限に作ることができる。
英語で最も長い単語は「floccinaucinihilipilification:無意味という意味」だという論があるが、発話時の音を共有している書き文字では話者がいない単語は概念共有できない。つまり有限個数である。
しかし、日本語は辞書にも載らない単語が今日も生まれ、今日も死んでいく。今後も辞書に乗ることもないであろう単語だらけなのだ。しかも「人造寅次郎」という単語である程度共通したイメージができちゃうのかもしれないところがさらに怖いところなのだ。顔文字で会話できたり、Lineのスタンプで会話できるのはこの表意文字に親しんでいるということに由来しているんじゃねぇかなと思っている。。
だけど、こういうのは暗黙知を共有していない日本語話者以外には通じないし、ましてやそれをプログラムのような論理的解釈の上にのせるのはとてもしんどいことなんだ。なんせ辞書で定義もされていない単語をつかって解釈をぶつのは論理記述屋のすることじゃぁない。
さらには日本語はオノマトペのような擬音語で済ませることも多く、「今日はぬらぬらヌチャヌチャした」なんて言えばなんとなく赤面する程度に非言語異存でばっちぐーなローコンテクストの文化背景なんだ。だいたいばっちぐーってなんなんだよ!言語のチートモードだよね。こんなの。
- 話者が少ない
- 他の語族で得たノウハウが使えない
これによって、日本語というものの扱いがもの凄く厄介になっている。
この問題はまたAI作文以外の項でも述べたい。
まだ分かち書きが難しかった頃は日本語の文章を全文検索することすら難しく、カカシだのナマズだのメカブだのなんだのと、実に独自進化を遂げているのである。ここには言葉を翻訳する以上のローカライズの労力が必要なのだ。
小説を書けるAIを自分もつくってみたくて、物語論(ナラトロジー)についてもちょっと調べたり、小説の作法をちょっとみたりしているのだが、そもそも日本語の資料も物語論についての体系的な研究も少くて(´・ω・`)
手動でできない事を自動でやってもろくなものにならないので、いま学習を詰んでいるところ。
おまけ
↓おみおつけの文をYahooの形態素解析にかけるとこんな感じ
developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html
<ma_result>
<total_count>18</total_count>
<filtered_count>18</filtered_count>
<word_list>
<word>
<surface>おみおつけ</surface>
<reading>おみおつけ</reading>
<pos>名詞</pos>
</word>
<word>
<surface>と</surface>
<reading>と</reading>
<pos>助詞</pos>
</word>
<word>
<surface>お味噌汁</surface>
<reading>おみそしる</reading>
<pos>名詞</pos>
</word>
<word>
<surface>が</surface>
<reading>が</reading>
<pos>助詞</pos>
</word>
<word>
<surface>違う</surface>
<reading>ちがう</reading>
<pos>動詞</pos>
</word>
<word>
<surface>もの</surface>
<reading>もの</reading>
<pos>名詞</pos>
</word>
<word>
<surface>だ</surface>
<reading>だ</reading>
<pos>助動詞</pos>
</word>
<word>
<surface>なんて</surface>
<reading>なんて</reading>
<pos>助詞</pos>
</word>
<word>
<surface>別に</surface>
<reading>べつに</reading>
<pos>副詞</pos>
</word>
<word>
<surface>そんな</surface>
<reading>そんな</reading>
<pos>形容動詞</pos>
</word>
<word>
<surface>事</surface>
<reading>こと</reading>
<pos>名詞</pos>
</word>
<word>
<surface>は</surface>
<reading>は</reading>
<pos>助詞</pos>
</word>
<word>
<surface>なく</surface>
<reading>なく</reading>
<pos>形容詞</pos>
</word>
<word>
<surface>は</surface>
<reading>は</reading>
<pos>助詞</pos>
</word>
<word>
<surface>なくっ</surface>
<reading>なくっ</reading>
<pos>形容詞</pos>
</word>
<word>
<surface>て</surface>
<reading>て</reading>
<pos>助詞</pos>
</word>
<word>
<surface>よ</surface>
<reading>よ</reading>
<pos>助詞</pos>
</word>
<word>
<surface>。</surface>
<reading>。</reading>
<pos>特殊</pos>
</word>
</word_list>
</ma_result>