Save 37% off PRO during our Black Friday Sale! »

ojichatを移植してたら試験監督に遅刻した話

 ojichatを移植してたら試験監督に遅刻した話

6598418c5a12d0ef7d6d2610d9db69ad?s=128

boiling_water_S

February 23, 2020
Tweet

Transcript

  1. ojichatを移植してたら 試験監督に遅刻した話 2020-02-23 14:30~ mintech revival #3 @boiling_water_S

  2. 本日のお品書き 1.自己紹介 2.移植の経緯 3.ojichatについて 4.移植 5.まとめ

  3. 自己紹介 (いつもの) 名前:Boiling_Water Twitter ID:@boiling_water_S 出身:うつくしまの左上 所属:KIT 情報 (卒業できそう) 情報処理技術研究会

  4. どうしてこうなった\(^o^)/ - 2/11(火)夜 某研究室にて -

  5. 移植に至るまでの経緯-1 処理研語録BOTが Discordのアップデートにより停止 修正ついでに、何か機能追加するか じゃあ ojichatだな() 図.処理研語録BOT (DiscordBot)

  6. 移植に至るまでの経緯-2 Java用のojichatないかな? (Discord4Jを利用しているため) ない じゃあ 移植するか!(脊髄反射) 図.処理研語録BOT (DiscordBot) 決断:22時頃 試験監督まで、あと12時間

  7. 処理研語録BOT 研民たちの何気ない 名 迷言 を “語録”として記録・振り返る Discord Bot • 紙なんすか!?、ザッコ

    • 蚊取り線香3点バースト • ブレーカーは2度死ぬ • 焼きそばペヤング超超超大盛GIGAMAX激辛END • ξ.rar • 泣きそうなくらい良い曲ですね。あっCDはいらないです • こっちが泣きそうだわ 以上 語録一覧より抜粋 運用開始(2019/06/26) ~ 128 語 登録済! メッセージ投稿復旧:2時頃 試験監督まで、あと8時間
  8. ojichatって?

  9. ojichatってそもそも何? 図. ojichatのロゴ (githubより抜粋) https://github.com/greymd/ojichat 名称 • Ojisan Nanchatte Generator

    説明 • おじさんがLINEやメールで送って きそうな文を生成するコマンド • ジョークツール 言語・環境 • Golang-cli (Dockerコンテナ版も) 開発 • greymd(Yasuhiro Yamada)氏
  10. 例 -1 ランダムな女性の名前で文を生成 引数で指定された名前で文を生成 $ ojichat ヤッホーれいこちゃん、元気かな⁉⁉オレは、近所に新しく できたラーメン屋さん に行ってきたよ。味はまぁまぁだったかナ $

    ojichat 山田 山田ちゃん、オハヨウ〜(^з<)(笑)山田ちゃんも今日も2時までお仕事かナ❓寒いけど、頑張 ってね(# ̄З ̄)
  11. 例 -2 -p(max3)で句読点の量を指定可能 -e で絵文字の量を指定可能 $ ojichat -p 3 オレとオマエと大五郎

    オレと、オマエと、大五郎チャン、オッハー❗(^_^)オレと、オマエと 、大五郎チャンにとって、素 敵な、1日に、なります、ようニ $ ojichat -e 10 おはよー、!チュッ☀ ❗(^з<) $ ojichat -e 0 ヤッホー。はなみちゃん、元気かな。はなみちゃんにとって素敵な1日になりますようニ。
  12. 移植するぞー

  13. 移植の条件として設定したもの 1. 極力オリジナルと同じ挙動をすること (名前・絵文字数・句読点数を指定できる) 2. 外部ライブラリとして利用できるように Jarにパッケージングする 3. 標準ライブラリと同様に利用できること (Mathクラスみたいな感じ)

  14. ojichatの処理フロー-1 1. ONARA(Ojisan NArikiri Randomized Algorithm : おじさんなりきり乱択アルゴリズム)からパターンを選択 今回はGR(Greeding/Reporting)パターンを選択

  15. ojichatの処理フロー-2 2.パターンに沿って 文を生成する {TARGET_NAME}、オハヨー{EMOJI_POS} そういえば、昨日は例の{RESTAURANT}に行って きたよ。結構いい雰囲気だったから、オススメだよ {EMOJI_POS} タグ • {TARGET_NAME}

    • {FIRST_PERSON} • {DAY_OF_WEEK} • {RESTAURANT} • {NANCHATTE} など…
  16. ojichatの処理フロー-3 3.{タグ}を置換する(絵文字は指定数繰り返し) 〇〇チャン、オハヨー♥(^o^) そういえば、昨日は例のイタリアンに行ってきた よ。結構いい雰囲気だったから、オススメだよ ✋ 完了

  17. 移植中に困ったところ 1.初見Go言語 → 仕方ない 2.同じライブラリが無い → 他で代用 3.形態素解析してるってまじ? 4.カタカナ活用

  18. 形態素解析してるってまじ? 生成された文へパラメータをもとに句読点の追加を行う 図.ふと我に返ったときのつぶやき 句読点挿入 終了:4時半頃 試験監督まで、5時間半 図.おじさん文がTokenizeされる様子 (オリジナルより) さらに、助詞(+助動詞)のあとに読点を追加 より“おじさん”らしくなる...らしい

  19. カタカナ活用-1 語尾を最大2文字までカタカナにする “おじさんカタカナ活用” を適用(挨拶の感情以外) より“おじさん”らしくなる...らしい(天丼) 図.“おじさんカタカナ活用” が適応される様子 (オリジナルより)

  20. カタカナ活用-2 オリジナルは正規表現を用いて検出・置換 カタカナ活用完了:6時半頃 試験監督まで、3時間半 正規表現 なにそれおいしいの? 脳筋置換じゃい 正規表現 頑張って勉強します…

  21. なんやかんやあって…

  22. できらぁ!!(歓喜) 図.Intellij IDEA上でのテスト時のSC 移植(仮)完了:7時頃 試験監督まで、3時間

  23. 地獄と化したDiscord鯖 遊ぶ処理研民たち (Discordより抜粋) BOTに実装(終):8時頃 試験監督まで、2時間 図らずもORA (Ojichat Reflection Attack) に成功した処理研民

  24. 満足だろうな!ガトー! だが・・・ 阿鼻叫喚のDiscord鯖 ぼく「満足じゃ」 その後の起床:11時半頃 試験監督まで、-1時間半(遅刻) そのまま意識が遠くへ…… zzz

  25. まとめ 大事な予定の前は、 アホなことしてないで、ちゃんと寝よう!

  26. None
  27. まとめ 1.一応遊べるレベルまで移植することができた 2.形態素解析 →句読点挿入が不自然(同じIPADicのはずなのだが...) 3.カタカナ活用が一部機能していない → 文末から遡る文字数設定のミス(12:30頃修正) 後々不具合修正&Githubで公開(許されれば)

  28. 謝辞 ojichat開発者 greymd様 資料中の例文・GolangのSCはすべて Github上(https://github.com/greymd/ojichat) から勝手にお借りしました。申し訳ありません。 本当にありがとうございましたm(_ _)m