「カタカナ率」をMozilla Labs Jetpackで実装してみた。
カタカナ率というワンアイデアサービスをローンチしました。
日本語の文章をインプットすると、文章の中に含まれるカタカナの割合を計算して出してくれます。
本日のネットサーフィンで、「なんか妙にカタカナ多いなあ」という文章を見たのですが、この「多い」ってどれぐらいなのか定量化してみよう、と考えたのがきっかけです。
ほー。で、習作も兼ねてMozilla Labs Jetpackで実装してみた。
var stripHTML = function(html) { return html.replace(/<[^>]*>/g, ""); }; var calcKatakanaRate = function(str) { if (!str || !str.length) { return false; } var str_only_kana = str.replace(/[^ァ-ヶ。-゚]/g, ""); return str_only_kana.length / str.length; }; jetpack.tabs.onReady(function(doc) { if (!doc.defaultView.frameElement) { var body = stripHTML($(doc).text()); var rate = calcKatakanaRate(body); if(rate) { var formattedRate = ' (' + Math.floor(rate * 100 * 10 + 0.5) / 10 + '%)'; var message = '普通の文章ですね'; if (rate > 0.5) { message = 'ニホンヘヨウコソ! ドモアリガット'; } else if (rate > 0.25) { message = 'あなたはコンサルで、何か後ろ暗いことを誤魔化そうとしてますね'; } else if (rate > 0.125) { message = '外資系にお勤めですか?'; } jetpack.notifications.show({title:doc.title, body:message + formattedRate}); } } });
実行方法
- FirefoxにMozilla Labs Jetpackアドオンをインストール
- about:jetpackを開いてdevelopを選択
- 黒い領域に上のソースコードをコピー&ペースト
- 左下の「try out this code」をクリック
ページ読込完了後にポップアップでカタカナ率を表示する。ただしカタカナが一切含まれていない場合はポップアップしない。
改善余地
- ページ全体が対象なので閾値を若干下げているが、それでもなかなか出ないかも。要調整。
- stripHTMLが手抜き。inputタグ等に含まれるカタカナはカウントされない。
- ステータスバーに実装できるが手を抜いてポップアップで実装。
結論
JavaScriptに多少心得があれば簡単にアドオンもどきを実装できるMozilla Labs Jetpackは素晴らしい。