Weitere ähnliche Inhalte
Kürzlich hochgeladen (11)
The esperanto generator
- 2. 自己紹介
会田寅次郎
中学一年生
Python歴3ヶ月
動的型付原理主義者
Perlにトラウマがある
Objective-Cにトラウマがある
Pythonを始めた理由:
ソフトのAPIにPython製のが
多いから
最近Pythonと人工知能にちょっとはまっている。
今回、コンピュータにエスペラントを作ってもらう、
という企画を立てた。
人工知能・・・数列や画像を覚えさせる、学習させる事で
これは缶コーヒブルーマウンテンで、これはコカコーラで、などと、画像がどのよう
な物か認識したり、
モーツァルトやベートーベンの曲を覚えさせる事で
モーツァルト風の曲やベートーベン風の曲を作らせる事が出来る、みたいな感じ
で
人間と同じような感じに動く事が出来る機能を持っている、すごいやつです。
Hinweis der Redaktion
- The esperanto generator
この企画は、コンピュータにエスペラントを作らせよう、という企画です。
このプレゼンの9割は予想と推論で出来ていて、さらに人工知能に関する知識も相当間違ってるでしょうが、何卒お許しください。
- まず最初に、自己紹介をします。
僕の名前は、会田寅次郎と言います。
中学一年生です。
僕のPython歴は、3ヶ月と、非常に短いです。たぶんPythonの一割も理解してません。
動的型付言語原理主義者で、使う言語はほとんど動的型付けです。JavaのJの字を見ただけでアナフィラキシーが起こります。最近は色々触ってますが・・・
Pythonを始めた理由は、
ソフトのAPIにPython製のが多いからです。
なんか、最低限の教養はないとな、みたいな感じで、Pythonを始めました。
PerlとObjective-Cにトラウマがあります。もうチンプンカンプンになったので投げました。
プログラミングに関しての自己紹介はこんな感じです。
最近、人工知能にちょっとはまっていて、
今回、Pythonでコンピュータにエスペラントを作ってもらう、という企画を立てました。
コンピュータ関連のイベントで、人工知能の事とかを知って興味を持って、
そのイベントに居た人も人工知能を動かすのにPythonを使ってたので、
じゃあPythonでやってみようかな、と思ってこの企画を立てました。
人工知能とは、数列や画像を覚えさせる、学習させる事で
これは缶コーヒブルーマウンテンで、これはコカコーラで、などと、画像がどのような物か認識したり、
モーツァルトやベートーベンの曲を覚えさせる事で
モーツァルト風の曲やベートーベン風の曲を作らせる事が出来る、みたいな感じで
人間と同じような感じに動く事が出来る機能を持っている、すごいやつです。
- エスペラントとは。
ザメンホフという人が作った、人工言語です。
言語問題を解決するために作られました。
ラテン語と似ているけど、ずっと簡単らしいです。
色々めんどくさい決まりがないらしいです。
ヨーロッパに話者が多いようです。
語彙はヨーロッパで使われている言語と互換性が高いみたいです。
話者の分布はこんな感じです。
まあしかし、この企画のタイトルに使ってたりする「エスペラント」は人工言語の象徴としてのエスペレント、なので
このような特徴はあまり考えないで、「The esperanto generator」を作ります。
- 次に、「esperanto generator」の大枠、について説明をします。
言語を作るプログラムを作る、となると、言語の作らせ方が重要になってきます。
例えば、
「ちゃんと日本語や、英語等の言語の決まり事にそって作らせるのか、
そもそも、一から作らせることなどせずに日本語や、英語等をベースにして作らせるのか」
「語彙や発音も作らせるのか。作るとしたら、どうやって作らせるのか」
「単語単位で作らせるのか。文字単位、発音単位で作らせるのか。」
「難しい言い回しとかはどうやって作らせるのか」
などなど。そういった言語の作らせ方、大枠を、ここで説明したいと思います。
- 僕がesperanto generatorを思いついた時から、もうこれだけはやろうと思っていたことがあります。
それは、
言語として成り立たなそうな物も言語として扱う。
という事です。
今ある言語は、やっぱり一定の決まりに従って、出来ているわけです。
ある程度は日本語と英語も互換性があります。
極論を言ってしまえば、どちらにも名詞がありますし、動詞もあります。
しかし、僕は思いました。
「そういう、今ある言語の決まり事に沿って作るって、どうなんだろう。
やっぱり、もっと新しい言語を作らないと、楽しくないんじゃないか。今ある言語とにたような物が出来るだけ、それで何になるというのか。」
そうおもったのです。
もっと新しい言語を、作らせなければいけないのではないか。
[アニメーションがある所の前まで行く]
動詞、形容詞、名詞、副詞、助動詞、主語、副詞、助動詞、動詞。
これらは英語と日本語、両方の言語に出演している品詞です。
英語と日本語は結構違う言語のはずです。
なのに、海を超えて同じ物が存在している。
という事はこれらは結構一般的な単語である、といえます。
もっと新しい言語を作らなければ行けないので、こういった物にバツ印を付けて、無くしちゃいましょう!!!
[クリックして、アニメーションさせる。]
[クリック]
もっと新しく、もっと実験的に!!!
動詞なんてなくしちゃえ!
名詞なんてなくしちゃえ!
- 今までに無い文体を実現するため、言語の定義の振幅を大きく広げます。
もう、どんな物でも言語にします。
スリッパでも、ハエでも、イカの塩辛でも言語にします。
それでも、一つだけ制約を付けます。
それは、必ずちゃんと人間が使える、使えそうな言語を含めて作らせる、という制約です。
Esperanto generatorは何千、何万と言語を創ります。そして、その創る言語の中に、
必ずちゃんと人間が使える、使えそうな言語を含ませる、ということです。
つまり、できた言語の内、全然使えなさそうな言語がほとんどだったとしても、
一つはちゃんと使えそうな言語が作られるようにする、ということです。
なので、言語を作る時には、「度合い」を定めることになります。
どれくらい使える言語なのか、という度合いです。
その度合いに沿って、作って行くことになります。
- わかりやすく例をあげて説明します。
例えば、「今日はいい天気ですね」という文と、
「今日は悪い天気ですね」という文を翻訳した結果、
どちらも同じ「今日は天気です」という文を出力した言語Aがあるとします。
この言語には、修飾語がありません。
これでは、言語として成り立ちません。
一方下の言語B、二つの文を翻訳した結果、
「いい天気今日は」という文と、
「悪い天気今日は」という文が出力されました。
この言語には、修飾語があります。
この言語は、言語として成り立ちます。
Esperanto generatorでは、この言語Aと言語B、どちらも作らせる、という事です。
- そのような、全然使えない言語と、普通に成り立つ言語、
両方を作らせるには、どうすればいいのでしょうか?
- 普通に言語を作るだけなら、例文を人工知能に学習させ、
人工知能に例文を作らせる、と言った事で良いのですが・・・
「もう、どんな物でも言語にします。
スリッパでも、ハエでも、イカの塩辛でも言語にします。」
とか言っちゃったので、そんな事は出来ません。
すこしでも出来た物が既存の言語に依存してたら、新しい文体にならないのです。
だから、既存の言語から作れるものをインプットする行為は、やめます。
- 既存の言語からインプットするのをやめる。
つまり、機械に「0」から言語を作ってもらうのです。
何もしなくても勝手に言語を、「0」から言語を作ってくれる。凄いですね。
- では、どうやって言語を作らせるのでしょう。
人間は、「100」を「1」にする事しか出来ません。
今まで蓄えてきた知識などを、「1」にするのです。
それが、人間における「創る」ということです。
しかし、機械にはできます。
「0」を、「1」にすることが。
ランダム。ランダムがあれば、無から情報を作り出せます。
ランダムを使い、無から、新しい言語を創る。
そして、新しい文体の、実験的な言語が創られます。
そうやって、esperanto generatorは言語を創り続けます。
- つまり、既存の言語から作れるものに頼らず、ランダムに頼って、
言語をつくらせる、という事です。
それを実現するためには、データを言語にする構造が必要です。
つまり、ランダムな物から作られたデータを、言語に変換する、という仕組みです。
この仕組みが、Esperano generatorを作る上で、一番重要な部分です。
この仕組みさえ出来てしまえば、Esperano generatorはできたも同然です。
しかし、データを言語にする、というプログラムは、非常に難しいものです。
なので僕は、ここで挫折しました。
このデータを言語にする、というプログラムのおかげで、
「Esperano generator」を作るのは、非常に難しい、という事に気づかされました。
今回、なんと僕はPythonのプログラムを作っていません。
このプログラムを作るのが非常に難しかったからです。
やっぱり難しいですね、こういうのを作るのは。
- 最後に、そもそも、なぜ僕は、ランダム、実験的にそこまでこだわるのだろうか、という事を話したいと思います。
これこそが、このesperanto generatorのコンセプトです。
最後にそれを、話したいと思います。
- この地球に存在する、人が使う、人が創る言語は、はっきり言って宇宙には通用しない。
実はこのプロジェクト、普通に人工知能に例文を大量に学習させて、
地球上にある言語の全ての平均を取っているような言語を創って、
それで「もっとわかりやすいエスペラント」みたいなものを、コンピュータに創らせても良かったかも知れない。
だが、私はそんな事はしなかった。
なぜか。
それは今まで言った通り、もっと新しい、もっと実験的な言語を創らせたかったからだ。
これには一つ、深い理由がある。
この地球に存在する言語は、一定の決まりに従って、出来ている。
だが、宇宙に存在する全ての言語が、その決まりに従っているわけがない。
宇宙人が使う言語は、人間の想像を絶するような、文体、構造になっているかもしれない。
「人間の想像を絶する」というのが、重要なポイントだ。
人間には到底想像する事の出来ない、未知の、宇宙人の世界だ。
しかも言語は、その文明を発展させてきた、非常に重要なものだ。
文明と切っても切れないような関係のある言語、しかも、未知の宇宙の文明だ。
それこそ、モノリスや、神まで関係しているかもしれない。
そんな、想像もつかないような世界。
人間が創った言語をもとにしていては、絶対に届くごとは無いだろう。
だが、機械にならそこに届く事が出来るかも知れない。
ランダムがある。
完全なランダムを基に言語を創れば、それこそ宇宙人が使っているような言語も
生成されるかも知れない。
無限の可能性がある。
そう、無限の可能性が。
いや、もしかすると神自身とも対話できるかも知れない。
第一、自分の国の言葉で神にお祈りなんて、おかしい。
神は、全知全能ではなくて、ちゃんと神の言葉で
話しかけなければ振り向いてくれない、なんてケースもあるだろう。
そういう、神の言葉も、esperanto generatorには創る事が出来るかも知れない。
だからこそ、ランダムという物を、私は使ったのだ。
それが、esperanto generatorのコンセプトだ。
今回、Pythonのデモは出来ていませんが、少しでもesperanto generatorに興味を持っていただけたら、幸いです。
そのうち完成版をgithubなんかに上げるかも上げないかもです。果たして僕は、宇宙に対抗できるのか!?
乞うご期待!
- ぼくのgithubのアカウント名は、aidatorajiroです。宜しくおねがいします。