ホーム   ゴリベンとは   ポリシー

ゴリラと学ぶ「PythonとMeCabでことわざ変換」

作成: 2020-02-18 | 更新: 2020-02-18

gori0000050

ゴリはまえにゴリラことわざをつくったけど(ゴリラのことわざを考えるウホ)、こんどは自動的🤖に作れるようにしたいウホ。ニンゲンの社会でも自動翻訳がすすんできているみたいだから、ゴリラとニンゲンのあいだの自動翻訳も進めていきたいウホ!

というわけで、こんかいはゴリラことわざを自動的に作るほうほうを考えるウホ。


もんだい

つぎのことわざをゴリラことわざにしてほしいウホ。その際、ことわざとその意味もゴリラに関する文言にして、できれば生成を自動化して欲しいウホ。

  • 光陰矢の如し
  • 窮鼠猫を噛む
  • 老いては子に従え
  • 待てば海路の日和あり
  • 全ての道はローマに通ず
  • 船頭多くして船山に登る

🦍🦍🦍🦍🦍🦍🦍🦍🦍🦍🦍


こたえ

Pythonで機械的にやるウホ!まえに「PythonとMeCabで文中の一般名詞をゴリラに変換するウホ」でもやったけど、「MeCab」を使うウホ。

ことわざとその意味はすべてWiktionary - メインページ(2020/02/18 閲覧時点)からの引用ウホ。

ことわざ 意味
光陰矢の如し 月日が過ぎるのは矢のように速い事の例え。
窮鼠猫を噛む 弱者であっても、追い詰められれば反撃してくるというたとえ。
老いては子に従え 年を取ったら何事も子供に任せて、それに従うのがいいということ。
待てば海路の日和あり 今は思うようにいかなくても、じっと待てばそのうちにチャンスがめぐってくる。だから辛抱強く待てということ。
全ての道はローマに通ず 真理というものは、どのような経路を通ったところで、必ず行き着くものである。
船頭多くして船山に登る 指図する人が多過ぎるとかえって統率がとれず意に反した方向に物事が進んで行くことの意。

動作環境: Google colaboratory python3ノートブック(2020/02/18版)

コードは次につぎのようにしたウホ。リストのなかみはことわざとその意味を交互にいれているから、偶数の時は「ことわざ:」、奇数の時は「意味:」として表示させるようにしているウホ。
ちなみに、まえとおなじように、!pip install mecab-python3を実行してmecab-python3(pypi.org)をインストールしてから以下のコードを実行しているウホ。

import MeCab

sentence_list = ['光陰矢の如し', '月日が過ぎるのは矢のように速い事の例え。',
                 '窮鼠猫を噛む', '弱者であっても、追い詰められれば反撃してくるというたとえ。',
                 '老いては子に従え', '年を取ったら何事も子供に任せて、それに従うのがいいということ。',
                 '待てば海路の日和あり', '今は思うようにいかなくても、じっと待てばそのうちにチャンスがめぐってくる。だから辛抱強く待てということ。',
                 '全ての道はローマに通ず', '真理というものは、どのような経路を通ったところで、必ず行き着くものである。',
                 '船頭多くして船山に登る', '指図する人が多過ぎるとかえって統率がとれず意に反した方向に物事が進んで行くことの意。']

for s in range(len(sentence_list)):
    t = MeCab.Tagger()
    sentence = sentence_list[s]
    sentence_gori = sentence
    t_list = t.parse(sentence).split()

    noun_list = [t_list[i-1] for i in range(len(t_list)) if t_list[i][0:5] == '名詞,一般']

    for noun in noun_list:
        sentence_gori = sentence_gori.replace(noun, 'ゴリラ')

    if s % 2 == 0:
        print('ことわざ: ', sentence_gori)
    else:
        print('意味: ', sentence_gori)
    print('----------------------')

実行した結果は次のようになるウホ。

ことわざ  ゴリラゴリラのゴリラ
----------------------
意味  ゴリラが過ぎるのはゴリラのように速い事の例え
----------------------
ことわざ  ゴリラゴリラを噛む
----------------------
意味  ゴリラであっても追い詰められれば反撃してくるというたとえ
----------------------
ことわざ  老いてはゴリラに従え
----------------------
意味  ゴリラを取ったらゴリラもゴリラに任せてそれに従うのがいいということ
----------------------
ことわざ  待てばゴリラのゴリラあり
----------------------
意味  今は思うようにいかなくてもじっと待てばそのうちにゴリラがめぐってくるだから辛抱強く待てということ
----------------------
ことわざ  全てのゴリラはローマに通ず
----------------------
意味  ゴリラというものはどのようなゴリラを通ったところで必ず行き着くものである
----------------------
ことわざ  ゴリラ多くして船山に登る
----------------------
意味  指図するゴリラが多過ぎるとかえって統率がとれずゴリラに反したゴリラにゴリラが進んで行くことのゴリラ
----------------------

実行した結果を、さっきとおなじ表にあらわすウホ。

ことわざ 意味
ゴリラゴリラのゴリラ ゴリラが過ぎるのはゴリラのように速い事の例え。
ゴリラゴリラを噛む ゴリラであっても、追い詰められれば反撃してくるというたとえ。
老いてはゴリラに従え ゴリラを取ったらゴリラもゴリラに任せて、それに従うのがいいということ。
待てばゴリラのゴリラあり 今は思うようにいかなくても、じっと待てばそのうちにゴリラがめぐってくる。だから辛抱強く待てということ。
全てのゴリラはローマに通ず ゴリラというものは、どのようなゴリラを通ったところで、必ず行き着くものである。
ゴリラ多くして船山に登る 指図するゴリラが多過ぎるとかえって統率がとれずゴリラに反したゴリラにゴリラが進んで行くことのゴリラ。

「光陰矢の如し」なんかは、もはやゴリラしかいないウホ。「窮鼠猫を噛む」は「ゴリラゴリラを噛む」になって、意味もまあまあ通じているウホ。ことわざによって、あてはまってそうなものと、名詞をむりやり変換しすぎたのがあるみたいウホ。


こたえ: 上記の通り


たくさんの意味が変換できたウホ!いいかんじにできたものや、むりやりっぽいものまでいろいろあったウホ。
これからもいろいろ考えていきたいウホ。かんがえたことすべてがベストな方法じゃないかもしれないけど、ゴリなりに毎回ちょうせんしてみるウホ。「全てのゴリラはローマに通ず」ウホ。


New Posts