テキストを壱百満天原サロメお嬢様文体に変換するコマンドを書いた
その名も ojosama コマンド
https://gyazo.com/6d8fcab04eb65c73b9761a34e3ddd8f5
リポジトリ
ツールのインストールをせずとも使えたほうが良いだろう、ということでWeb版もこしらえてみた
https://gyazo.com/5b8109a61d803636fccde14533cdfb04
Herokuのデプロイ方法を把握するのも含めて大体4時間くらいでWeb版作れた気がする まぁDBとか認証とか何もないのでこんなもん
スマホでの見え方とか全く考えてないし、クロスブラウザとかも何も考えてない。Chromeでしか動作確認していない
テキスト入力して、変換ができる、ってこと以上の機能を提供する予定はない
メインは ojosama の変換機能の方。WebUIは二の次
とはいえ色合いくらいは壱百満天原サロメお嬢様のイメージカラーに合わせたかったので合わせた
無料枠で動かしてるのでお金はかかっていない
サーバ保守も発生していないので、運用コストはほぼ0。だいぶ楽に運用できてる
ドメイン料金以外は無料枠に収まってるのでほぼ0円
今回はライブラリとしても使えるようなパッケージ構成にしてみた
リポジトリ直下は ojosama パッケージ
mainパッケージは cmd/ojosama 配下
textimgとかはコマンド以外の用途を想定してなかったので、リポジトリ直下にmainパッケージを配置してたが 実装まわり
実装としては形態素解析ライブラリのkagomeをお借りして、品詞と読みと、前後の単語を泥臭く判定して変換している 日本語は英語と比べるとやっぱり変換が難しくて、ちょいちょい変な変換をしてしまっている。地道に直していく
形態素解析ライブラリを使うのはこれが初めてではない その時もめちゃくちゃ苦戦したような気がする
sedとかでの単純置換をすると上手くいかないケースがあるので、今回は形態素解析を取り入れることにした 例えば「する」を「いたします」に単純置換すると、以下のケースでおかしな文になってしまう
再現するアルゴリズム→再現いたしますアルゴリズム
お嬢様的な言い回しだと「再現いたしますわ。」といった文の終わりのタイミングでだけ「いたします」を使うほうが日本語的に自然
つまり、前後の品詞の有無も合わせて変換しないと、違和感のある文になってしまう
後は壱百満天原サロメお嬢様固有の変換ルールも設けている
壱百満天原サロメお嬢様の配信を聞いていると、よく「〇〇ですわ~~!!!」という発言をする
あといろんなものに「お」を付ける
例:おハーブですわ~~!!!
このあたりの特徴的な言い回しも変換に取り入れるようにしてる
「まさしくお嬢様」という感じよりは「壱百満天原サロメお嬢様」な文体になるのを追求してる
余談
二次創作による創作元への配慮
コマンド名を salome にするか ojosama にするかは公開する直前まで悩んでた
ただ本人と関係ない人が二次創作で作ったツールを salome として公開すると、Googleの検索に載ってしまって検索妨害になってしまう懸念があった
ということで、いきなりは壱百満天原サロメお嬢様と結びつかないように ojosama にした
普段作ってるツールはだいたい好き勝手に思いついたものを0から作ってるから、このあたり気にしないけれど、今回は二次創作なので、創作元の方の迷惑にならないように最大限配慮しないといけないと思って、こういう形にした
当然、変換ルールも壱百満天原サロメお嬢様をなるべく再現するものに留めるのと同時に、壱百満天原サロメお嬢様のイメージを損なうような逸脱したものを絶対に定義しない
ガイドラインに従うから、ってのもあるけれど、それ以上に僕も壱百満天原サロメお嬢様のサロメイト(ファン)の一人なので、壱百満天原サロメお嬢様が嫌がるような創作物にしたくない
窓の杜
なぜか若干バズった関係でか窓の杜で取り上げられてた
こういうのって事前に連絡とか来ないもんなんだな
実行可能ファイル、Web画面、APIと3つの実行環境を提供した関係でか、何故か派生プロジェクトが生まれた
プロジェクト
何があるか分からんもんだなぁ
2つはAPI経由で操作してるっぽいので、CLIを公開したあとすぐにAPIも公開したのが良かったのかもしれない
APIがあれば実装に必要な言語を問わないしね
ただHerokuって可用性がどれくらいあるのか分かって無くて、もしかしたらユーザが増えるとダウンするかもしれない