🤖
Twitter自動リプライ:リプライ内容設定編
前回の内容
自動リプライの基本はこちらで
送るリプライをリッチにしたい
前回は決まった定型文を送るだけだったので、もう少し賢くするためのTIPSを書いてみようと思います。初心者向けの内容です。AIの内容は出てきません。
前回のStream用関数でいうと、
###ここで自分のリプライの内容を設定します
text ="リプライありがとう!"
この部分の内容をもう少し煮詰めましょうという記事です。
初級 ランダムに返事をさせる
単純に定型文の種類を増やしてランダムで決める作戦です。
以下を追加して呼び出すだけですのでお手軽です。
import random
def random_reply(reply_username=""):
words=["リプライありがとう!",
"いつも応援ありがとうございます",
"わーいリプライ!私リプライ大好き!",
"ただしつけもの、テメーはダメだ"]
word =random.choice(words)
return word
呼び出し方はこう
###ここで自分のリプライの内容を設定します
text =random_reply()
中級 相手の名前も入れる
tweet_id
から情報を引き出します。
def get_reply(tweet_id):
oauth = OAuth1Session(
consumer_key,
client_secret=consumer_secret,
resource_owner_key=access_token,
resource_owner_secret=access_token_secret,
)
params = {"ids": tweet_id, "expansions": "author_id"}
response = oauth.get(
"https://api.twitter.com/2/tweets", params=params
)
if response.status_code != 200:
raise Exception(
"Request returned an error: {} {}".format(response.status_code, response.text)
)
print("Response code: {}".format(response.status_code))
json_response = response.json()
return json_response
初級のランダム要素と組み合わせてみましょう。呼び出し方はこんな感じ。
##ここで自分のリプライの内容を設定します
json_response_rep =get_reply(tweet_id)
reply_username =json_response_rep["includes"]["users"][0]["username"]
text =random_reply(reply_username)
random_replyで文章を作ります。
def random_reply(reply_username=""):
words=["@"+ reply_username +"さん!リプライありがとう!",
"@"+ reply_username +"さん、いつも応援ありがとうございます",
"わーい@"+ reply_username+"さんのリプライ!私リプライ大好き!",
"ただし@"+ reply_username +"、テメーはダメだ"]
ちょっと人柄が出ます。
上級 会話の内容でケース分けする
単純ですがif
文で会話の内容をケース分けします。
inを使うことで部分一致でも反応できます。
##ここで自分のリプライの内容を設定します
monster =["シュレック","緑","怪物"]
if "角野卓三" in reply_text:
text="角野卓三じゃねーよ!"
elif"ステラ"in reply_text or "クッキー"in reply_text:
text="ステラおばさんじゃねーよ!"
elif True in[x in reply_text for x in monster]:
text="シュレックじゃねーよ!"
else:
text =random_reply(reply_username)
ちなみにシュレックの分岐は、
リスト内包表記[x in reply_text for x in monster]
で各条件との比較結果のリストを取得し、
True in
で「一つでも一致部分があればシュレック」という内容を書いています。
以上です
あとは角野卓三に"幸楽","ピン子"を追加するなどセンスの見せどころです。
AI春菜の作り方みたいになってしまいましたが、内容を変えれば単純な業務用BOTなどに応用できると思います。
AI春菜の場合random_replyのタイミングでreply_textの内容を見てAIが文章の自動生成をしています。ここでは取り扱いませんがまた記事にできたらいいなと思います。
Discussion