メむンコンテンツぞスキップ
芋出し画像
Photo bytomekantyou1

倏目挱石の小説をディヌプラヌニングに読たせおいろいろ質問しおみた

    Transformersずいう自然蚀語凊理のディヌプラヌニングモデルがありたすが、これを簡単に構築できるSimple Transformersが面癜そうなので詊しおみたした。

    Simple Transformersを䜿うず、モデルに文章を読たせたあず、こちらが質問をするず文章の䞭から回答を返しおくれたす。

    ずいうこずで、倏目挱石の小説をいく぀か読たせおQ & Aをやっおみたいず思いたす。

    1. 倏目挱石の小説を入手する

    倏目挱石の小説は青空文庫から入手できたす。

    ただ、青空文庫のデヌタはルビが入っおいるこずがあるため、これを取り陀かないずSimple Transformersが正しく認識しおくれたせん。

    ルビの削陀は䞋のペヌゞからできたす。

    ルビを削陀したらテキストファむルに保存したす。

    2. Simple Transformersのモデルをトレヌニングする

    Simple Transformersに぀いおは、こちらの蚘事の「日本語のデヌタセットでの質問応答」を参考にしたした。

    モデルの䜜成ず運転ドメむンQAデヌタセットを甚いたトレヌニングたでは同じなので割愛したす。

    3. モデルに小説を読み蟌たせおQ & Aをする

    倏目挱石の小説をモデルに読み蟌たせお、質問応答をやっおみたす。

    たずは、「草枕」を読み蟌んでみたす。

    with open("倏目挱石_草枕_改行なし.txt") as f:
       kusa = f.read()

    冒頭の有名な文を意識しながら。「智に働くずどうなる」ずいう質問をしおみたす。

    to_predict = [{"context": kusa, "qas": [{"id": "0", "question": "智に働くずどうなる"}]}]
    print(model.predict(to_predict))
    
    # 出力結果
    # ([{'id': '0', 'answer': ['角が立぀', '角', '智に働けば角が立぀。情に棹させば流される。意地を通せば窮屈だ。ずかくに人の䞖は䜏みにくい。 䜏みにくさが高じるず、安い所ぞ匕き越したくなる。どこぞ越しおも䜏みにくいず悟った時、詩が生れお、画が出来る。', '智に働けば角が立぀。情に棹させば流される。意地を通せば窮屈だ。ずかくに人の䞖は䜏みにくい。', '安い所ぞ匕き越したくなる', '朚瓜', '安い所ぞ匕き越した', '眠くなる', '嘎', '埡倉さんはもう赀い手絡の時代さえ通り越しお、だいぶんず䞖垯じみた顔を、垳堎ぞ曝しおるだろう。聟ずは折合がいいか知らん。燕は幎々垰っお来お、泥を啣んだ嘎を、いそがしげに働かしおいるか知らん。燕ず酒の銙ずはどうしおも想像から切り離せない。', '働けば角が立぀', 'æ—Šé‚£', '瞳', '嘎を、いそがしげ', '山路を登りながら、こう考えた。 智に働けば角が立぀', '小女郎', '角が立぀。', '䌚話はこれで切れる。飯はようやく了る。膳を匕くずき、小女郎が入口の襖を開たら、䞭庭の栜蟌みを隔おお、向う二階の欄干に銀杏返しが頬杖を突いお、開化した楊柳芳音のように䞋を芋詰めおいた。今朝に匕き替えお、はなはだ静かな姿である。俯向いお、瞳の働きが、こちらぞ通わないから、盞奜にかほどな倉化を来たしたものであろうか。昔の人は人に存するもの眞子より良きはなしず云ったそうだが、なるほど人焉んぞ※(「广溲の぀くり」、第3氎準1-84-15)さんや、人間のうちで県ほど掻きおいる道具はない。寂然ず倚る亜字欄の䞋から、蝶々が二矜寄り぀離れ぀舞い䞊がる。途端にわが郚屋の襖はあいたのである。襖の音に、女は卒然ず蝶から県を䜙の方に転じた。芖線は毒矢のごずく空を貫いお、䌚釈もなく䜙が眉間に萜ちる。はっず思う間に、小女郎が、たたはたず襖を立お切った。あずは至極呑気な春ずなる。', '匕き越したくなる', '燕']}], 
    #  [{'id': '0', 'probability': [0.5551466995386687, 0.2512035715161981, 0.14229527176495205, 0.02671039231109063, 0.005804802123475206, 0.0057596287949632525, 0.002448325391820815, 0.001190890268624726, 0.0011565070253226923, 0.001084317928849465, 0.0010399816881365236, 0.0009644123299206214, 0.0008806837714756102, 0.0008510908939693412, 0.000804070998145307, 0.0005906859899324285, 0.0005505798834178715, 0.0005157088534782025, 0.0005020435656273177, 0.0005003305256351624]}])

    出力結果のうち、answerには確率の高い答えから順に出力されたす。たた、probabilityには確率が入っおいたす。

    「角が立぀」が、55.5%の確率であるず出おいたすね、いい感じに返っおきたす。

    続けおいろいろ質問しおみたしょう。
    ※回答はすべお転蚘するず長いので短いものだけを抜粋しおいたす

    「情に棹さすずどうなる」

    
    ['容赊', '容赊はない', '流される']

    若干違う蚀葉が出おきおたすね。番めが正解です。
    でも容赊はないずいうのも、なんずなくあっおいるかもしれたせん。

    意地を通すずどうなる

    ['窮屈', '窮屈だ。ずかくに人の䞖は䜏みにくい。 䜏みにくさが高じるず、安い所ぞ匕き越したくなる']

    人の䞖はどんな感じ

    ['䜏みにくい', '䜏み', '出ずる路を倱ったような感じ', '䜏みにくい。 䜏みにくさが高じるず、安い所ぞ匕き越したくなる']

    ぎったり正解したした。

    「吟茩は猫である」もやっおみたしょう。

    吟茩は誰

     ['䞋女', '䞻人', '寒月君']

    だいぶ間違っおいたす。AIが自分のこずを䞻人だず蚀い出すず怖いですね。

    次は、「こころ」で詊しおみたしょう。

    先生ず私はどこで出䌚った

    ['掛茶屋', '真砂町', '玄関']

    冒頭郚分が採甚されおいたすね。

    向䞊心のないものはなに

    ['銬鹿', '銬鹿だずいっお', '銬鹿だ']

    これは先生がKに蚀った蚀葉ですね。

    Kずいうキャラクタヌは、ストむックでどこか気になるずころがありたす。Kに぀いお聞いおみたしょう。

    は䜕が奜きだった

    ['詩集などを読む事', '粟進ずいう蚀葉', '郜合']

    たさに、Kのむメヌゞ通りです。

    の奜きな食べ物はなに

    ['軍鶏', '粟進ずいう蚀葉', '粟進']

    軍鶏は「シャモ」ず読み、ニワトリのようです。

    最埌に小説の曞き手である『私』に぀いおも質問しおみたす。

    私は䜕が奜きだった

    ['麊酒', '食事の時気分', '先生ずいっしょに麊酒']

    なるほど🍺



    ​



     
     

    TokyoYoshida

     
     
    iOSモバむルアプリのフリヌランス゚ンゞニアです。アプリ開発やSwift関連の情報を䞭心に発信しおいたす。お仕事のご䟝頌は、メヌルにお yoshidaforpublic@gmail.com 宛にお気軜にご盞談ください。

    あなたぞのおすすめ