雀魂の牌譜を 国士無双 という名前でブックマークしようとして、伏字になった経験はありませんか?しらみつぶしに原因を探ると、国 がNGワードに設定されていることがわかります。次に、こちらのツイートをご覧ください。
ブラウザ版の雀魂では、平 と 今 を同時に含む文章は伏字になると突き止められたようです。ただ、原因となる文字をしらみつぶしに特定することは、骨が折れる作業だと想像できます。そこで、開発者ツールを使って、原因を特定する方法を紹介します。
NGワードの判定
NGワードの判定を行っているのは、app.Taboo.test
という関数です。例えば、平和 がNGワードかどうかは、次のコードを実行すると判断できます。
(コードの実行は、自己責任でお願いします。)
app.Taboo.test("平和");
null
null
という結果が返ってきました。NGワードは含まれていないという意味です。続いて、国士無双 の場合を見てみましょう。
app.Taboo.test("国士無双");
{s: '国', id: 20784}
実行結果から、国 がNGワードであると分かります。このように、何が引っ掛かるのかを教えてもらえます。次は、平_今 とした場合です。
app.Taboo.test("平_今");
{s: '平进', id: 20729}
上記のツイートの通り、平_今 は伏字になります。そして、実行結果から察するに、今 を 进 という字と同一視しているようです。また、関係のない文字は無視されており、単純なNG避けができないことがわかります。
似ている漢字
実は、同一視される漢字の一覧を見ることができます。異体字であったり、発音や字体が似ている漢字が対象です。一例として、國 と 坪 と 今 に対応する漢字を見てみましょう。
var near = app.Taboo.near_char_father;
[near["國"], near["坪"], near["今"]];
['国', '平', '进']
國 は 国 と、坪 は 平 と、今 は 进 と同一視されることが分かります。
(つまり、國士無双 は伏字になります。圀士無双 や 匤士無双 であればセーフです。)
NGワードの例
このことから、平_今 が伏字になるのは、平 や 进 と見なされる漢字が同時に含まれるためだと分かりました。ちなみに、そういった漢字は他に50文字以上存在します。
- 平
- 品 貧 頻 顰 牝 瓶 凭 憑 評 鮃 坪 屏 塀 聘
- 进
- 今 巾 斤 近 金 筋 緊 禁 襟 錦 謹 僅 饉 矜 境 競 鏡 驚 径 経 京 景 憬 鯨 敬 警 茎 痙 頸 脛 津 浸 晋 進 尽 儘 晶 浄 静 精 靖 井 丼
そのため、伏字になる原因を掴めないときは、これらの漢字が関係しているかもしれません。例を挙げると、経済評論、東京品川、牝馬競走 は伏字になります。