毎日テキストマイニング

180日間、毎日テキストマイニングをするブログです

2018/8/26【64日目】Chatborを作ってマルコフ連鎖の反応を見てみたい

このまま大量にテキストを学習させていくだけですと、あまり面白くもないので、チャットボットを作って、その反応にマルコフ連鎖でテキスト生成を行わせたいと思います。

まずは簡単なChatbotを作成してみる

Chatbotを作ったことがないので、まずは簡単なものを作ってみたいと思います。

まずは名前を返すだけのchatbotです。

name = input("Hello, what is your name? ")
print(“こんにちは” + name + “さん”)

次は選択肢を増やして、言葉を変えるchatbotです。

greet = input(“元気ですか? ")
if “うん” in greet:
    print(“最高ですね”)
else:
    print(“あらら”)

これだけですと、「元気です」でも「あらら」と返ってくるので、リストにしてみます。

res = ["うん", "はい", "元気です"]

greet = input("元気ですか? ")
if greet in res:
    print("最高ですね")
else:
    print("あらら")

これをつなげると、一応chatbotになります。

name = input("お名前はなんですか?")
print("こんにちは" + name + "さん")

res = ["うん", "はい", "元気です"]

greet = input("元気ですか? ")
if greet in res:
    print("最高ですね")
else:
    print("あらら")
    
print("じゃあ、バイバイ")
お名前はなんですか?山田
こんにちは山田さん
元気ですか? うん
最高ですね
じゃあ、バイバイ

こんな感じで作ったChatbotの返答の部分をマルコフ連鎖で作成してみたいと思います。

とりあえず今日はこんなところです。

今日の結果

今日のAKBの呟きは40件でした。 kh corderですが、どうやら読み込める量がありまして50行くらいが限度のような気がします。 とりあえずの画像はできました。

f:id:rimt:20180831004909p:plain f:id:rimt:20180831005039p:plain

'ない': 4, '可愛い': 4, 'すごい': 4, '嬉しい': 4, '楽しい': 3, '暑い': 1, 'たのしい': 1, '良い': 1, '少ない': 1, 'いい': 1, '弱い': 1, '強い': 1, '小さい': 1, 'はやい': 1})
'日': 7, 'こと': 6, '笑': 5, 'ちゃん': 5, 'ない': 4, '可愛い': 4, 'すごい': 4, '嬉しい': 4, '私': 4, '幸せ': 4, '明日': 4, '今日': 4, '夏': 4
'する': 29, 'てる': 10, '日': 7, 'れる': 7, 'こと': 6, '笑': 5, 'ちゃん': 5, 'みる': 5, 'くる': 5, 'ない': 4, '可愛い': 4, 'すごい': 4, '嬉しい': 4, '私': 4, '幸せ': 4, '明日': 4, '今日': 4, '夏': 4, '人': 4, 'ファン': 4, '皆さん': 4, 'ゆう': 4, '撮る': 4, 'く': 4, 'くださる': 4,