なぜ大量のテキストを分析しても意味のある文章を作り出すことができないのか?その理由と対策です【Pythonと形態素解析】

日本語のテキストだけを分析しても、そこから新しい文章を作るのはむずかしい

Pythonパイソンプログラムで作文にチャレンジしたけど、めちゃめちゃ難しかった。

むずかしかったというか、自分は失敗しました。

その『理由』と『対策(案)』を書きました。

理由:言葉を言葉だけで扱ってたから。

対策(案):言葉を人の記憶とかイメージに関連付ける。

以上です。

あと、この対策にいたるきっかけとなった動画を2種類紹介しています。

スポンサーリンク

なぜ作文が難しいのか?さっそく結論です

たくさんの文章を形態素解析けいたいそかいせきしても、そこから新しい文章を作れない理由、原因。

分割して取り出した言葉を扱うだけでは、うまくいかない。

それは、言葉自体が意味を持っていなかったから。

言葉の意味は、人の記憶の中にあったから。

言葉が意味するところの大部分は、自分の記憶の中にあったから。

言葉とは、人の記憶の一部を指すものだったから。

作文ができなかったのは、『記憶』という、データベースみたいなものが抜け落ちていたから。

だったら、プログラムで作文をするには、『記憶』を用意すればよい

そうです。この記事が言いたいのは、こういうことです。

作文がうまくできないことへの『対策』は『記憶』を用意すること

『作文には、記憶とか、経験とか、体験というか、記憶の中の光景というか、そういった記憶のデータベースみたいなものが必要。』

じゃあ、その記憶はどうやって作るのか?

これは、今、いろいろ考えているところであります

『形態素解析やテキスト解析の過程』では、書き方、話し方がわかる。

『人の記憶』の一部を外に出すときは、そういった書き方、話し方のフォーマットに載せて出す。

うまく表現できないのですが、プログラムで意味のある作文をする流れとしては、そういったカタチになるんじゃないかなって思っています

作文をするには『記憶』が必要

記憶がないと、構文だけが合ってて、意味不明な文章になる。

どう読んでも、自分の記憶や経験を超えた、超文章ができてしまう

『リンゴが歩いてる』とか、『ミカンに空気を入れる』とか。

そんな光景、たぶん見たこと無いですよね?

単語を適当にくっつけると、経験の範疇を超えた文章になってしまう

べつに、形態素解析という手法が問題なのではない。

そうではなくて、作文をするにあたって、足りないものがある、あった。

それをくっつけないといけない。それを探す。

形態素解析やテキスト解析からは、『構文(こうぶん、フォーマット)』が見えてくる。

人の記憶』からは、『意味のある言葉』が見えてくる。

構文』に『意味のある言葉』を用意するのが『人の記憶』のお仕事。

構文だけだと、超文章ちょうぶんしょう、スーパー文章(今作った造語)ができてしまう。

作文をするなら、記憶を作って、その範囲で書かせる、しゃべらせる必要がある

大量のテキストを分析しても作文はできなかった

自分がぶちあたった問題です。

『大量のテキストを分析しても、意味のある文章を作ることはできなかった。』

意味のある文章を作る方法がわからない

『形態素解析の結果を眺める ⇒ すごい!⇒ ここからどうすれば?』

『word2vecの結果を眺める ⇒ すごい!⇒ ここからどうすれば?』

形態素解析の実験にあたっては、MeCab(メカブ) Janome(ジャノメ)を使わせていただきました。
形態素解析の結果をどのように応用したらよいか?の実験に当たっては、word2vecを使わせてていただきました。

ライブラリは、期待していた結果を返してくれました。ありがとうございます。

そして、です。

形態素解析の結果を眺めたり、それらを使ってword2vecで応用を考えてみたり、いろいろ試してみました。

どうにかして、作文に役立てようと。

けれども、自分のあたまではどうにもこうにも、うまく作文する方法が思いつきませんでした

本当にむずかしくて、何も解決しないまま、時間ばかりが過ぎていきました。

言葉のひとつひとつには意味が無い

なぜ作文が難しいのか?なぜできなかったのか?

いろいろ調べながら考えて至った結論の部分です。

『単語のひとつひとつには、特に意味が無かったから。』

自分は、単語に意味があると思い込んでいたから。

無意味なものを組み合わせても無意味になる

形態素解析の結果を集めて、出現頻度や並びを分析しました。

しかし、そこからうまく作文する方法が思いつきませんでした

せいぜい、単語をランダムに入れかえて、ワードサラダを作ってみる。

そのくらいしか思いつきませんでした。

『無意味なものを組み合わせても、ほとんどが無意味になる。』

言葉自体に意味が無い意味が通るようにする方法が無い

『ディープラーニングとか、機械学習とか、そういったものをいっぱい使える環境があっても、たぶんむずかしい。』

『なんだろう?なんというか、問題はテキストの量じゃない。』

このあたりで、なんだか自分のアプローチが間違ってるような気がしてきました。

間違ってるというか、何かが足りない

『作文をしたい』という目的に対して、テキスト解析だけでは、何かが足りない

言葉の意味は自分の記憶の中にある

実際のところ、ことばの意味はどこにあるのか?

言葉の意味は、自分の記憶の中にある。

『人間は、単語のひとつひとつに、自分の記憶とか、映像とかを、重ねている。そうやって、言葉を理解している。』

そういえば、言葉って、人によって受け止め方が違ったりするよな?』

なぜ人によって言葉の受け止め方が変わるのか?

言葉が単に記憶を指すものだと、そう実感したら、なんだか分かってきました。

人によって、記憶が異なるから。

これに尽きると思いました。

ここで単なる連想れんそう類推るいすい(アナロジー)ですが、言葉っていうのは、C言語のポインタみたいだなって思いました。

どうすれば作文ができるのか?

じゃあ、どうすればいいのか?

結論です。対策の部分です。

これまでの人生、みたいなデータのかたまりを作って、それに作文させる。』

こういう発想で作れば良いんじゃないか?

たぶんそうじゃないかな?きっとそうだ!

これが、今のところの結論です。

しかしながら、そうです。

それじゃあ『これまでの人生』ってなんだ?ってなりますよね?

そこは再び、いろいろと考えているところなのであります。

しかしながら、『人生』というか『人の記憶』。これを用意できれば、出来事とか事実を言うための作文は、できるんじゃないかなって思います。

さらに言えば、『人の考え方』みたいな形のデータにすれば、なにかの主張とかをするための作文も、できるんじゃないかなって思います。

先人の方々の解説にようやく実感が湧いてきた

『決して、言葉のひとつひとつに、絶対的な意味があるわけではない。』

『意味するところの大部分は、自分の記憶の中にある。』

言葉というのは、自分の記憶を指し示す目印。単なる目印。意味はほとんど持っていない。』

『だから、テキストだけを分析しても、意味のある文章は作れない。』

似たような説明していた方を、過去にブログやニコニコ動画やYouTubeで、何人か見かけました。

それらを見ていた当時の自分です。

『どういうことなの?』

当時は、言葉とはイメージを指すもの、といった説明が、良く理解できませんでした

言葉って、意味そのものじゃないの?国語辞書とかそうじゃない?』

みたいな思い込みが、自分にはありました。

けど、作文プログラムを作ろうと思い立って、うまくいかなくて、それでだんだん自分のアプローチのまずさに気づいてきました。

その過程で、先人の方々が解説していたところに実感が湧いてきました。

言葉』とは、記憶の中のアレを指すものだとか、

意味』とは、記憶の中にあるイメージみたいなものだとか。

先人の方々は異なるテーマで同じポイントにふれていた

たとえば、以下のようなテーマの動画を見ていました。

人工知能が人間の知性を超える時(シンギュラリティ、技術的特異点ぎじゅつてきとくいてん』の解説

なぜ勉強しても英語を話せるようにならないのか?』の解説

ほかにもいくつかあったのですが、今すぐに思い出せたのがこのふたつです。

この2つですが、テーマは作文プログラムの作り方ではないです。

ですが、解説に共通する点がありました。

言葉とは、記憶の中のイメージに結びつけるもの、関連付けるもの。』

『イメージに結びついていない、関連付いていない状態では、意味を持たない。』

異なるテーマの動画なのに、同じようなポイントに到達してたのが興味深かったです。

人工知能が言葉を理解できない理由』とか、『学校で英語を勉強しても英語を話せるようにならない理由』とか、そのあたりの山というか壁というか。

その突破口というか、ブレークスルーは、同じようなところにあるのかもしれない。

なんとなくですが、そう思っています。

技術的特異点(ぎじゅつてきとくていん、シンギュラリティー)

人工知能が人間の知性を超える時のこと技術的特異点のことを、詳しく解説していた方がいました。

ニコニコ動画で見ることができます。

【人工知能】ゆっくりをねらえ!技術的特異点講座

というシリーズです。

この技術的特異点講座のシリーズの中で、言葉とイメージの関連付けの話が登場しました。

技術的特異点講座 第14回の中です。記号接地問題きごうせっちもんだいの解説として登場しました。

たしか、人工知能じんこうちのうといいますか、人工無能じんこうむのうに、一貫性のある会話をさせるにはどうすればいいのか?そして、それができないのはなぜか?みたいな話題だったと思います。

会話のつじつまを合わせるためには、『言葉』に『イメージ』を関連付ける必要がある。

自分が作文プログラムを作ろうとして失敗したときに、そのあたりの解説を思い出しました。

『言葉』を『言葉』だけで扱っているうちは、作文はむずかしい。というか、たぶんできない。

どうして『意味のある作文をする方法』を見つけられなかったのか?とか、どうして『とんちんかんな文章を作る方法』しか思いつかなかったのか?とか、そのあたりの理由がこの辺にあるような気がしています。

テキストの解析だけでは足りない。『言葉』は『イメージ』に関連付ける。

むしろ、『イメージ』から『言葉』を出すくらいの勢いでもいいんじゃないか?

そんなことを、今は考えています。

技術的特異点のことを解説されているこちらの動画、とても分かりやすくて、すごく面白かったです。非常におすすめです

【人工知能】ゆっくりをねらえ!技術的特異点講座 第1回
ゆきひこ さん
https://www.nicovideo.jp/mylist/37457898
(ニコニコ動画)

なぜ6年間も英語の授業を受けて簡単な英語が書けないのか?

なぜなのか?

授業が板書ばんしょ中心だったから、話せないのは当然としても、です。

簡単なメモやメールくらいは、英語で書けるようになっても良さそうじゃないですか?

自分の場合は、中学校と高校だけでも、6年間、勉強してきたわけです。

それでも英語の読み書き遅いです。授業といえば、単語の書き取り&構文構文ばかりで、とても苦手でした

なんでだろうと、モヤモヤとした気持ちのまま、学生生活が終わりました。

YouTubeで、そのあたりの原因を詳しく、分かりやすく解説していた方がいました。

原因のひとつとして、たしか、言葉をイメージでとらえる訓練をしていないからだ、ということをおっしゃっていました。

『CHOCOLATE?』

↓↓↓

『CHOCOLATE!』

言葉を見たり聞いたりしたときに、パッと『アレのことだ!』とわかるようにする。英語は英語で理解する。

英語を話せるように訓練するにあたって、現在完了形とかの文法は必要はない、和訳も必要ない。

日本語を理解するときに、他の国の言葉に翻訳してから理解していますか?していないでしょう。

なぜこういう言い回しをするのか?とか、考える必要もない。これはこういうものなんだと、そのまま覚える。

英語の成り立ちに『なぜ?』とかを考える必要はない、そのまま覚えればいい。

たしか、そのような解説だったと思います。

YouTube で、衝撃の英会話というシリーズを投稿されています。

解説がまっすぐで分かりやすくて、凄く良かったです。非常におすすめです。

「英語で考える」衝撃の英会話 1 英語で考えるとは?
K&S office
https://www.youtube.com/user/channelactive/videos
(YouTube)

こちらで知った、英語を話せるようになるためのポイント。

英語はイメージ。英語は英語で考える。言葉を見たり聞いたりしたときに、パッと『アレのことだ!』とわかるようにする

このあたりのこと。これが、プログラムで意味のある作文をするために必要、なんじゃないかなと、今は思っています。必要というか、ヒントになっている気がします。

そして、画像解析とか映像解析とか、そういった大きなプログラムを考えなくても、実験はできるような気がしています。

単語をテキストファイルにまとめるカタチでもいいから、言葉が意味するところ、一般的に、人が記憶に持っているところをまとめておく

作文に当たっては、そのデータベースをから言葉の並びを引き出す

作文の流れをそういったカタチにしたら、少しは良い作文ができるんじゃないかなって、今はそう思っています。

なぜプログラムで作文しようと思ったのか?

ところで、なぜ、形態素解析テキスト解析を駆使して、文章を作ろうと思ったのか?

その理由です。

日本語のテキストをプログラムに覚えさせて、おもしろい文章を無限に生成したい!

その一心で、テキスト分析などを始めました。

結果は惨敗テキスト分析だけじゃ足りない? ⇒ 『人の記憶的データベース必要!

それからしばらくして、また面白文章作成にチャレンジしたいなって、思うようになりました。

再燃です。

ほかにも、決算分析の結果から文章を作りたいとか、またいろいろ試してみたいことが出てきました。だから、です。

文章作成のプログラミング環境がどんどん充実している

プログラミング言語のPython は、本当に便利です。

XBRLから作成したグラフを載せている業績チャートの記事も、Pythonで作っています

  1. Python で全企業の記事を、マークダウン(.md)で作る。
  2. 静的サイトジェネレーターのヒューゴ (HUGO) で、ウェブサイトにする。

この方法で作っています。

それで、決算の傾向の説明とか、経営状況の文章の要約とかもできないかな?って思ったわけです。

新聞社ではすでに運用している、みたいなニュースも見ました。

決算の説明とまではいかなくても、じぶんで何か役に立つ文章を作れないか?

いつか取り組んでみたい分野の一つです。

Python と、Python から使える各種ライブラリ

それらが、知らぬ間にどんどん良くなっていってる

そういうのに気づく ⇒ 今ならできるんじゃないか? ⇒ また作りたい!

スポンサーリンク
開発経験談
シェアする(押すとSNS投稿用の『編集ページ』に移動します)
フォローする(RSSフィードに移動します)
スポンサーリンク
シラベルノート
タイトルとURLをコピーしました