ボンジニアの備忘録

凡人エンジニア、通称ボンジニアによる備忘録です。勉強した内容を書いていきます。ジャンル問わずです!間違っていたら指摘をお願いします!

出川哲朗の名言をマルコフ連鎖を使って文生成してみた

文生成を手軽にやってみたくて、導入としてマルコフ連鎖を使った文生成をやってみました。 参考にしたページはこちらです。 d.hatena.ne.jp

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
import MeCab
import lxml.html
import requests

def wakati(text):
    t = MeCab.Tagger("-Owakati")
    m = t.parse(text)
    result = m.rstrip(" \n").split(" ")
    return result

if __name__ == "__main__":

    filename = "test.txt"
    # 出川哲朗の名言を取得しファイルに書き込み
    target_url = "http://meigen.keiziban-jp.com/%E5%87%BA%E5%B7%9D%E5%93%B2%E6%9C%97"
    target_html = requests.get(target_url).text
    root = lxml.html.fromstring(target_html)
    anchors = root.xpath('//p')
    f = open(filename,"w")
    for anchor in anchors:
        text = anchor.text
        if text == None:
            continue
        text = text.strip()
        if not text:
            break
        f.write(text)
    f.close()
    # てっちゃんファイル読み込み
    src = open(filename, "r").read()
    wordlist = wakati(src)
    markov = {}
    w1=""
    w2 = ""
    for word in wordlist:
        if w1 and w2:
            if (w1, w2) not in markov:
                markov[(w1, w2)] = []
            markov[(w1, w2)].append(word)
        w1, w2 = w2, word

    count = 0
    sentence = ""
    w1, w2  = random.choice(list(markov.keys()))

    while(count < len(wordlist)):
        if (w1,w2) in markov :
            tmp = random.choice(markov[(w1, w2)])
            sentence += tmp
            w1, w2 = w2, tmp
        count += 1

    print(sentence)

出力結果

ときに快感はすごいし…劇団からTVに出てきたいやいやダメでしょこれー!(板尾さんのことを)メニーメニピーポートークハウス、ポーキングパレス、ロンドンの3大トーク世界三大チキンの一つミッキーマウスはマウス、ドナルドダックはファッツ?どなるろらックナンバーワンドナルドダックドゥーユーノーガーガーチキン?メニメニ―ピーポー?メニメニピーポーマイジャパンセイセイ(大英博物館のことを)イングランド ヒストリー ホール(完結編のことを)メニーメニピーポートークハウス、ポーキングパレス、ロンドンの3大トーク世界三大チキンの一つミッキーマウスはマウス、ドナルドダックはファッツ?どなるろらックナンバーワンドナルドダックドゥーユーノーガーガーチキン?メニメニ―ピーポー?メニメニピーポーマイジャパンセイセイ(大英博物館のことを)かんけつせん(アメリカ人に対して)キャンユースピークイングリッシュ?ホワッツ珍魚?ギリギリまでカーマイがシャラップそれはガチ!ヤバいよ、ヤバいよ、ヤバいよ、ヤバいよ、ヤバいよ喉が赤ちゃんだからノーファック!あ~~!お尻・・・・・あ~~~~~~~!すごく感激してたら生きていけるよ!首以外の骨は全部折ってきてお笑いタレントになったパターンなんで純粋に分類すると、高田純次さんとか久本雅美さんと仲良くなって、芸人ってすげえなあって思うようになって、“あ、これ『アメトーーク!』だな”と(笑)座った椅子が壊れるとかでは、全然僕も気づいてなかった。ドライヤーから粉が出て、“あ、これ『アメトーーク!』だな”と『出川を探せ』じゃなくて『出川を探せ』じゃなくて『出川を探してから…』になっちゃってますからね趣旨が変わってるぞってことですよ。ブレすぎだろとでも湿布ってマジでしょ?見えたら笑えない才能なんかなくて『出川大陸』の第2弾だと気づいたんです。そうやって自分の中で納得して欲しいといったご要望にお応えしてきてお笑いタレントになって、チェン(内村)がいて・・・・・あなたを心から愛ちていまちゅ。結婚ちています。ここに入江がいて、南原がいて・・。こんな日が来るなんて、学生時代には考えられなかった・・・チョングムの誓い俺は、そうして欲しいといったご要望にお応えして欲しいといった人物等ございしたらお問い合わせフォームよりお送り下さいませ。弊社で調査を行い掲載可否を判断させていただきます。ここに入江がいて・・)Yes!チェ~ン!!食材はケチるな!惜しみなく用意せよ!世の中にある様々な名言や当サイトではこういうテーマの名言を掲載してからは、全然僕も気づいてなかった。ドライヤーから粉が出てきてお笑いタレントになったパターンなんで純粋に分類すると、高田純次さんとか久本雅美さんと仲良くなって、チェン(内村)がいて、芸人ってすげえなあって思うようになっちゃってますからね!ここのスタッフ頭おかしいだろ!(海外でマフィアに捕まり「お前は警察か?」と聞かれ、緊張のあまり・・・あなたを心から愛ちています。もし取り上げて欲しい、この人物の名言や格言集を掲載して欲しいといった人物等ございしたらお問い合わせフォームよりお送り下さいませ。弊社で調査を行い掲載可否を判断させていただきます。ここに入江がいて、南原がいて・・。こんな日が来るなんて、学生時代には考えられなかった。ドライヤーから粉が出てきてお笑いタレントになっちゃってて。隠れてるはずなのに、もう別にどっきりだな”と(笑)次の日もその次の日も何か起こるんだけど誰も出てこない。あまりに引っ張るんで、“あ、これ『アメトーーク!』だな”と(笑)座った椅子が壊れるとかでは、1度も無い俺の行き様を見てくれ!俺は英語ペロペロだからねワイだよ、ワイ!放送事故になったんです。そうやって自分の中で納得していまちゅ。結婚ちてくだしゃいNoStop!(海外でマフィアに捕まり「お前は警察か?」と聞かれ、緊張のあまり・・


てっちゃん相当狂ってやがるぜ・・・w今度は別の方法で文生成できるようにしよう。