jiro4989 / ojosama Goto Github PK
View Code? Open in Web Editor NEWテキストを壱百満天原サロメお嬢様風の口調に変換します
テキストを壱百満天原サロメお嬢様風の口調に変換します
Twitterを見てるとやっぱり絵文字を多用されてるので、絵文字要素を取り入れたい。
問題は量と条件。
脈絡なくぶち込むと元の文が壊れてしまうが、でももとのテンションの高さ的にはそれくらいのほうがちょうど良いのかもしれない
READMEの文章が気になったのでtextlint入れたい
など
「〇〇する」は対応したので、「〇〇した」に対応する。
なくても良いかもしれない。
現状forループとループ変数を色んな関数に引き回している。
関数が前後のトークンを必要とする場合はループ変数とトークンを必要とし、関数内で位置を進めたりしている。
正直実装が分かりづらいし、汚いし、似たようなコードが色んなとこに散らばっていて良くない。
もっと良い実装にできないか考える
たまにPRをいただくので、念のためテンプレを用意したほうが親切かもしれない
全部が全部伸ばすのも適当ではないように思うので、「わ!」で終わってるときだけ伸ばすのが良いのかな
ハイテンションさを表現できるようにしたい。
現状、元の文に!や?がある時にそれをトリガーに強調するような処理を入れた。
ネットの記事とかだと!とか?とかはあんまり多用しないで、淡々とした文章で書かれることは多いので
こういう文も強制的にお嬢様な感じにしていきたい
お母様とおママ上は使い分けているのでどうしようかな
gocyclo を使うと循環的複雑度を計測できる。
21以上をNGにする。
その場合その後ろに続くやつをどうするかが問題になる。
「バナナはおやつです!!!」とかを変換したときに「おバナナはおやつですわ❗!!」とかになる可能性がある。
つまり、絵文字に変換したあとはその後ろの文字列も合わせて変換しないとおかしくなる。
❗ を採用したら?も❓ に変換してしかるべき
変換前 | 変換後 |
---|---|
あなた | 貴方 |
あんた | 貴方 |
おまえ | 貴方 |
お前 | 貴方 |
てめぇ | 貴方 |
てめえ | 貴方 |
おめー | 貴方 |
貴様 | 貴方 |
きさま | 貴方 |
そなた | 貴方 |
君 | 貴方 |
もう少し実際の話し方を拝聴して、どういう単語に「お」を付ける傾向があるのか分析が必要そう
罵倒の類では「お」を付けてないことを聞いてて気づいた
たしか go fmt
がコケてたので、一旦 1.19 のテストを止めた。
フォーマット処理が変更になったのかな
例文は以下。
終助詞の定義は以下。
助詞の種類の一。種々の語に付き、文の終わりにあってその文を完結させ、希望・禁止・詠嘆・感動・強意などの意を添える助詞。現代語では、「か(かい)」「かしら」「な」「ぞ」「ぜ」「とも」「の」「わ」「や」など。古語では「か(かな)」「てしか(てしかな)」「にしか(にしかな)」「もが(もがな)」「かし」「な」「そ」「なむ」「ばや」など。
コトバンクより引用。
こういった終助詞の絡む文は組み合わせが多彩なので、読み決め打ちのルールで実現するには難しい。
大量のルールが必要になるし、おそらく漏れが発生する。
品詞の法則性を特定して、そのパターンで文を変換するようにしたい。
現状ルール定義をひたすら列挙して実装してる。
行数が増える一方なので、ある程度まとめて定義できるようにしたい。
正規表現的な記述ができると良いんだけれど。
現状、!のときに~~!!をつけたりするけれど、半角の ! のときは付けていない。
?の場合も同様。やる。
おまけ程度で、!のときは ❗ とかの絵文字のビックリマークを混ぜる機能も付けたい
なん(じゃ|だ|や)(こ|そ|あ)(れは|りゃ)
全部対応しないといけない。
変換後は「なんですの(こ|そ|あ)れは
」
結構これ面倒なのでは
気づいたものをひらすら加筆して修正する
絵文字はフォントによっては対応してなかったりするので、変換に使わないように制御するオプションパラメータを用意する。
デフォルトでは絵文字を含む。
ネットスラングを含む、笑いの表現を「おほ+
」に変換する。
笑いのネットスラングにはいくつかバリエーションがある。
これらの表現を「おほ+
」に変換する方法を考える。
「草」を「おハーブですわ~~!!!」にするかどうかは悩む。
配信を拝聴している限り、ハーブを見つけた時に「おハーブですわ~~!!!」とおっしゃっている。
あとは配信内で「おほほ」と短く感動を表現されていた。
どちらかというと「おハーブですわ~~!!!」は
サロメイトが「草」のお嬢様表現としての言い回しのようにも感じる。
基本的に壱百満天原サロメお嬢様の言い回しに近い変換を目指すので
「草」を「おハーブですわ~~!!!」に変換するのは適当ではないのではないかもしれない。
おパイプに対応していただければ、おコマンドのお用途が広がりますわ。
例
ojichat 'サロメ' | ojosama
以下が文の終わり。
現状パッケージを呼び出したときに自動で乱数のシード値が設定されるようになっている。
https://github.com/jiro4989/ojosama/blob/81519582f901d03cb66845fd95c6a3dd59e192f9/ojosama.go
これだとパッケージをimportするだけでパッケージ呼び出し側に副作用が発生してしまう。
ライブラリ的にこれはよろしくないので、呼び出し側で制御できるようにする。
方法は2種類考えられる。
1はライブラリ的に自然できれいなアプローチになるが、破壊的変更になってしまう。
2は非破壊的変更だが、ライブラリを使う側はオプションパラメータの存在を知っていないと制御できない。
まぁジョークライブラリなので 1 のアプローチを取りつつマイナーバージョンアップで良いのでは。
(メジャーバージョンアップをするとパッケージを v2 パスに変更しないといけなくて、ライブラリを使う側の修正も発生して面倒くさい。本来であれば破壊的変更の場合はメジャーバージョンアップをするのが適当だけれど、このライブラリの利用用途的にそこまで厳密でなくても良いのでは)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.