このツールを使ったことによる損害については、一切責任を負いません。自己責任でお願いします。
クソアプリなのでちゃんとふざけます
はじめに
仕事って… 面倒くさいですよね?(圧)
そこで、「今日は休みたいけど理由がない…」というあなたのために、仕事を休む言い訳を自動生成するアプリを作ってみました。
マルコフ連鎖って何?
マルコフ連鎖とは、
「次に何が起こるかは、今の状態だけで決まる」
というルールに基づく状態遷移モデルです。
つまり、過去の経緯は関係なし。 今の状態さえわかればOK です。
この図のように、A -> B -> D や A -> C -> D といった経路を確率に応じて生成します。
実装の仕組み
ChatGPTに頼んで、仕事を休む言い訳をマルコフ連鎖で使いやすい形式に整理してもらいました。
const corpus = [
// 体調・医療
["本日","は","発熱","の","ため","欠勤","いたします","。"],
["今朝","から","激しい","頭痛","が","あり","お休み","を","いただきます","。"],
["腹痛","が","改善","せず","通院","の","ため","欠勤","します","。"],
["めまい","の","症状","が","出て","安全","確保","の","ため","休み","ます","。"],
["喉","の","痛み","が","悪化","し","医療","機関","を","受診","します","。"],
["歯痛","が","強く","歯科","治療","の","ため","欠勤","します","。"],
["腰痛","が","悪化","し","業務","継続","が","困難","です","。"],
["感染症","検査","の","指示","が","あり","自宅","待機","します","。"],
["医師","から","安静","の","指示","を","受け","ています","。"],
["薬","の","副作用","が","強く","本日","は","休養","します","。"],
// 家族対応
["家族","が","急病","となり","看病","の","ため","欠勤","します","。"],
["高齢","の","家族","の","介護","対応","で","お休み","を","いただきます","。"],
["子ども","の","体調","不良","に","より","付き添い","が","必要","です","。"],
["家族","の","通院","に","同行","する","ため","欠勤","します","。"],
["同居","家族","の","入院","手続き","の","ため","休み","ます","。"],
["家族","の","手術","当日","対応","が","必要","です","。"],
["親族","の","容体","が","急変","し","対応","します","。"],
["家族","の","退院","に","伴い","迎え","対応","を","します","。"],
["介護","認定","手続き","の","ため","役所","に","出向き","ます","。"],
["家族","支援","が","必要","となり","本日","は","欠勤","します","。"],
// 交通トラブル
["電車","の","運休","に","より","出社","できません","。"],
["人身","事故","の","影響","で","移動","が","困難","です","。"],
["高速","道路","事故","渋滞","で","到着","できません","。"],
["始発","列車","の","大幅","遅延","が","発生","しています","。"],
["交通","機関","の","全面","停止","に","より","移動","不可","です","。"],
["道路","封鎖","の","影響","で","通勤","できません","。"],
["車両","故障","が","発生","し","移動","手段","が","ありません","。"],
// 冠婚葬祭
["親族","の","葬儀","に","参列","する","ため","欠勤","します","。"],
["告別式","対応","の","ため","お休み","を","いただきます","。"],
["法事","出席","の","ため","本日","は","欠勤","します","。"],
["結婚式","参列","の","ため","休暇","を","取得","します","。"],
["親族","の","通夜","対応","が","あります","。"],
["喪主","補佐","の","ため","本日","は","休み","ます","。"],
["葬儀","準備","対応","に","より","欠勤","します","。"],
["親族","集会","対応","の","ため","欠勤","します","。"],
["弔問","対応","の","ため","休暇","を","いただきます","。"],
["冠婚葬祭","対応","に","より","本日","は","欠勤","します","。"],
// 公的・社会的手続き
["役所","で","の","手続き","が","あり","本日","は","休み","ます","。"],
["運転","免許","更新","手続き","の","ため","欠勤","します","。"],
["パスポート","申請","手続き","で","欠勤","します","。"],
["裁判所","への","出頭","要請","が","あります","。"],
["選挙","関連","業務","の","ため","欠勤","します","。"],
["公的","説明","会","に","出席","します","。"],
["行政","から","の","指示","に","より","欠勤","します","。"]
];
詳細な実装は GitHub で公開しています。
実際に生成してみた
GitHub Pagesで公開しているので、誰でも試せます。
生成例:
感染症検査の退院に出席の手術当日対応が改善せず通院の介護対応での全面停止に出席の副作用が発生し移動が悪化し対応に参列の全面停止により出社できません。
…意味不明だけど、それがマルコフ連鎖の醍醐味です (?)
まとめ
- マルコフ連鎖を使うと、確率に基づいた自然言語を生成できます。
- 今回は「仕事を休む言い訳」を自動で作れるアプリを作成しました。
- GitHub Pagesで手軽に試せるので、暇つぶしにも最適です。
