【19日目】ツイートの「ぱちお度」を判別する!ぱちお診断 2020 エディション【ぱちお Advent Calendar 2020】
https://ぱちお.comxn--t8j2b5b.com
おはおはの民!
RNDです!今年も(今年しかない)参加させてもらいました!
ぱちおアドベントカレンダー!
この記事はぱちおアドベントカレンダーの19日目の記事です。
18日目は、ぱちお(@patioglass)さんの【18日目】生まれた日!!!!!!!!!【ぱちお Advent Calendar 2020】 - ぱちおのいろいろ。でした!20日目は、ぱちお(@patioglass)さんの記事です。
ぱちおくんお誕生日おめでとう
昨日はぱちおくんの誕生日でした。
今年のプレゼントはこちらです!
ぱちお.com
ぱちお.comのドメイン早く取得してほしい、取らないと俺が勝手に取ってぱちお関連アプリ置き場にする
— RND.png (@RND_png) November 8, 2019
ぱちお診断ってなに?
- 2015年くらいにぱちお君のツイートを元に文の「ぱちお度」を判定するアプリを作った
私の友人がぱちお度を図る診断をプログラム組んでくれました(頼んだ覚えはない)
— ぱちお@土曜日 東ケ14b (@patioglass) May 24, 2015
ぱちお診断 http://t.co/EBG60a72Np #ぱちお診断
ぱちお度とは...
ぱちお診断はナイーブベイズフィルタによって、
入力された文章の「ぱちおくんのツイートらしさ」を判定します。
ぱちお度は
「文章が与えられた時の、その文章がぱちおツイートである(条件付き)確率」
を表します
もっと詳しく言うと、
文章を単語の集まりとして見做して、
それらの単語が
「ぱちおくんのツイート(の単語の集まり)」
「ぱちおくん以外のツイート(の単語の集まり)」
のどちらに含まれるかを確率的に判定します
2017年以降のぱちお(@patioglass)くんのツイートと
ぱちおくん以外の人のツイートを形態素解析(単語に分解すること)して
それぞれの単語の数をカウントしておく
それを元に任意の文章d(単語の集合)が与えられた時に
それがぱちおである確率らしきものを計算する
うろ覚えなので間違ってるかもしれない
(6)がぱちお度、計算精度の都合上logに直してから計算する(7)
今時ならDoc2Vec使うともうちょっといい感じになるかも
(でもぱちお度の精度を求めてる人間おる??)
ぱちお診断の作り直し
かなり昔に作ったもので、最近のぱちお君のツイートが反映されていません
どうせなので好きなように直します
Dockerに載せた
SQLiteからMySQL + ActiveRecordに
旧版はSQLを生書きしてた、久しぶりに見たら全然意味わからんかったので
ActiveRecordを入れて処理を追いやすくした
ActiveRecordを単体で使うの、地味に面倒臭い
↓の記事が参考になりました
qiita.com
generate migrationコマンドとかはついてこないので自前で実装
フロントエンド
Webpackを突っ込む
TypeScriptで書く
Reactを突っ込む
バックエンドをAWSに変えました
旧ぱちお診断があったサーバは放置してて動いてなかったので
新しくどこかにサーバ立てたりする必要がありました
AWSほぼ触ったことない赤ちゃんだったので大変だった
経緯
AWSを触りたいなぁという気持ちがあったのと、
ECSっていうやつでdocker-composeがそのまま使えるようになったらしいというのを聞いて
それならデプロイ楽なんじゃない???
と思っていた時期が僕にもありました...
実際は
- ecsのdocker composeではbuildができない
- 事前にECRにimageをpushしておく必要がある
- ので、docker-compose.ymlでbuildしたりvolumeでソースコードを突っ込んだりしてるとそれと別でdocker-compose.ymlを書く必要がありそう
- スケールアウトさせるのを前提としているので複雑な設定を書かないといけない
で、今回みたくスケールアウトとかいらないならEC2にECRからpullしてきて
docker-composeで立ち上げた方が楽そうという結論に
(docker saveとかを使ってうまくデプロイするスクリプトを書けばECRもいらないかも)
今後の展望
frontのnginxいらんくない?
現状default.confにproxy_passが設定されてるだけで何の設定もないので多分いらない
NLBから直接APに飛ばせば良さそう
Lambdaにできそう
フロントエンドをs3とかで配信して
APとmecabあたりをLambdaにできないか考えてみる
テストないしLinterも入れてない
あとで入れる
おわりに
『前回の記事から3年も経ってて怖くて泣いちゃった』のぱちお度は100%でした。
それではみなさん 良いお年を!!