Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ojichatを移植してたら試験監督に遅刻した話
Search
boiling_water_S
February 23, 2020
Programming
0
1k
ojichatを移植してたら試験監督に遅刻した話
boiling_water_S
February 23, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
高速開発のためのコード整理術
sutetotanuki
1
410
Apache Iceberg V3 and migration to V3
tomtanaka
0
180
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
620
Gemini for developers
meteatamel
0
100
今から始めるClaude Code超入門
448jp
8
9.1k
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
atmaCup #23でAIコーディングを活用した話
ml_bear
1
150
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
Metaprogramming isn't real, it can't hurt you
okuramasafumi
0
100
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
Writing Fast Ruby
sferik
630
62k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
How GitHub (no longer) Works
holman
316
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Believing is Seeing
oripsolob
1
59
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
100
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
ojichatを移植してたら 試験監督に遅刻した話 2020-02-23 14:30~ mintech revival #3 @boiling_water_S
本日のお品書き 1.自己紹介 2.移植の経緯 3.ojichatについて 4.移植 5.まとめ
自己紹介 (いつもの) 名前:Boiling_Water Twitter ID:@boiling_water_S 出身:うつくしまの左上 所属:KIT 情報 (卒業できそう) 情報処理技術研究会
どうしてこうなった\(^o^)/ - 2/11(火)夜 某研究室にて -
移植に至るまでの経緯-1 処理研語録BOTが Discordのアップデートにより停止 修正ついでに、何か機能追加するか じゃあ ojichatだな() 図.処理研語録BOT (DiscordBot)
移植に至るまでの経緯-2 Java用のojichatないかな? (Discord4Jを利用しているため) ない じゃあ 移植するか!(脊髄反射) 図.処理研語録BOT (DiscordBot) 決断:22時頃 試験監督まで、あと12時間
処理研語録BOT 研民たちの何気ない 名 迷言 を “語録”として記録・振り返る Discord Bot • 紙なんすか!?、ザッコ
• 蚊取り線香3点バースト • ブレーカーは2度死ぬ • 焼きそばペヤング超超超大盛GIGAMAX激辛END • ξ.rar • 泣きそうなくらい良い曲ですね。あっCDはいらないです • こっちが泣きそうだわ 以上 語録一覧より抜粋 運用開始(2019/06/26) ~ 128 語 登録済! メッセージ投稿復旧:2時頃 試験監督まで、あと8時間
ojichatって?
ojichatってそもそも何? 図. ojichatのロゴ (githubより抜粋) https://github.com/greymd/ojichat 名称 • Ojisan Nanchatte Generator
説明 • おじさんがLINEやメールで送って きそうな文を生成するコマンド • ジョークツール 言語・環境 • Golang-cli (Dockerコンテナ版も) 開発 • greymd(Yasuhiro Yamada)氏
例 -1 ランダムな女性の名前で文を生成 引数で指定された名前で文を生成 $ ojichat ヤッホーれいこちゃん、元気かな⁉⁉オレは、近所に新しく できたラーメン屋さん に行ってきたよ。味はまぁまぁだったかナ $
ojichat 山田 山田ちゃん、オハヨウ〜(^з<)(笑)山田ちゃんも今日も2時までお仕事かナ❓寒いけど、頑張 ってね(# ̄З ̄)
例 -2 -p(max3)で句読点の量を指定可能 -e で絵文字の量を指定可能 $ ojichat -p 3 オレとオマエと大五郎
オレと、オマエと、大五郎チャン、オッハー❗(^_^)オレと、オマエと 、大五郎チャンにとって、素 敵な、1日に、なります、ようニ $ ojichat -e 10 おはよー、!チュッ☀ ❗(^з<) $ ojichat -e 0 ヤッホー。はなみちゃん、元気かな。はなみちゃんにとって素敵な1日になりますようニ。
移植するぞー
移植の条件として設定したもの 1. 極力オリジナルと同じ挙動をすること (名前・絵文字数・句読点数を指定できる) 2. 外部ライブラリとして利用できるように Jarにパッケージングする 3. 標準ライブラリと同様に利用できること (Mathクラスみたいな感じ)
ojichatの処理フロー-1 1. ONARA(Ojisan NArikiri Randomized Algorithm : おじさんなりきり乱択アルゴリズム)からパターンを選択 今回はGR(Greeding/Reporting)パターンを選択
ojichatの処理フロー-2 2.パターンに沿って 文を生成する {TARGET_NAME}、オハヨー{EMOJI_POS} そういえば、昨日は例の{RESTAURANT}に行って きたよ。結構いい雰囲気だったから、オススメだよ {EMOJI_POS} タグ • {TARGET_NAME}
• {FIRST_PERSON} • {DAY_OF_WEEK} • {RESTAURANT} • {NANCHATTE} など…
ojichatの処理フロー-3 3.{タグ}を置換する(絵文字は指定数繰り返し) 〇〇チャン、オハヨー♥(^o^) そういえば、昨日は例のイタリアンに行ってきた よ。結構いい雰囲気だったから、オススメだよ ✋ 完了
移植中に困ったところ 1.初見Go言語 → 仕方ない 2.同じライブラリが無い → 他で代用 3.形態素解析してるってまじ? 4.カタカナ活用
形態素解析してるってまじ? 生成された文へパラメータをもとに句読点の追加を行う 図.ふと我に返ったときのつぶやき 句読点挿入 終了:4時半頃 試験監督まで、5時間半 図.おじさん文がTokenizeされる様子 (オリジナルより) さらに、助詞(+助動詞)のあとに読点を追加 より“おじさん”らしくなる...らしい
カタカナ活用-1 語尾を最大2文字までカタカナにする “おじさんカタカナ活用” を適用(挨拶の感情以外) より“おじさん”らしくなる...らしい(天丼) 図.“おじさんカタカナ活用” が適応される様子 (オリジナルより)
カタカナ活用-2 オリジナルは正規表現を用いて検出・置換 カタカナ活用完了:6時半頃 試験監督まで、3時間半 正規表現 なにそれおいしいの? 脳筋置換じゃい 正規表現 頑張って勉強します…
なんやかんやあって…
できらぁ!!(歓喜) 図.Intellij IDEA上でのテスト時のSC 移植(仮)完了:7時頃 試験監督まで、3時間
地獄と化したDiscord鯖 遊ぶ処理研民たち (Discordより抜粋) BOTに実装(終):8時頃 試験監督まで、2時間 図らずもORA (Ojichat Reflection Attack) に成功した処理研民
満足だろうな!ガトー! だが・・・ 阿鼻叫喚のDiscord鯖 ぼく「満足じゃ」 その後の起床:11時半頃 試験監督まで、-1時間半(遅刻) そのまま意識が遠くへ…… zzz
まとめ 大事な予定の前は、 アホなことしてないで、ちゃんと寝よう!
None
まとめ 1.一応遊べるレベルまで移植することができた 2.形態素解析 →句読点挿入が不自然(同じIPADicのはずなのだが...) 3.カタカナ活用が一部機能していない → 文末から遡る文字数設定のミス(12:30頃修正) 後々不具合修正&Githubで公開(許されれば)
謝辞 ojichat開発者 greymd様 資料中の例文・GolangのSCはすべて Github上(https://github.com/greymd/ojichat) から勝手にお借りしました。申し訳ありません。 本当にありがとうございましたm(_ _)m