2013年02月03日

日本語配列とデータ精度

月見草配列ウェブサイトの一連の文章に触発されて、小梅配列作者として思うところを述べておきます。

最適化計算によるかな配列『月見草』

小梅配列の指標となった10万字サンプル

小梅配列は周知の通り、「10万字サンプル」と称する10万字超の文章データをベースに作成した日本語配列です。10万字サンプルは Excel 上に構築した配列解析ツールで、

  • 11文書104,357字を全文解析する
  • IME の再変換機能でカナに戻しているので、読みの精度の問題がない
  • カナだけでなく、記号や英数字も数値評価の対象

という、他に類例のない特徴を持っています。しかしながら、10万字サンプルは日本語配列を直接生成するものではなく、都度都度の全文解析による

  • 左右別|段別|指別|キー別の打鍵頻度
  • シフト頻度(連続シフト含む)
  • 交互打鍵率|片手連打率
  • 同手跳躍|同指跳躍|同指異鍵|同指連打|同鍵連打

等の指標を参考にして、人力で作成したのが小梅配列でした。「計算配列」をオートフォーカスで狙ったところに自動的にピントを合わせて撮影した写真(=成果物)に例えるならば、小梅配列はフォーカスエイドを参考にしながらマニュアルでピント合わせをした写真と言えます。

関連記事

小梅配列の作り方
2007-2009

小梅配列のデータの量と質

10万字サンプルはファイルサイズが50MBを超えて、再計算1回につき15分前後、同じ手の同手シフトの連続 の計算では1回ごとに25分強も費やすなど、全文解析という手法の限界を露呈したツールでもありました。データを増やそうとしても、Excel が「メモリが足りません」とエラーを出して終わり。時間的・物理的な制約によってボリュームが10万字に制限されたことが、良くも悪くも小梅配列の歴史を決定付けたように思えます。

10万字サンプルという手法の確立とともに生まれた小梅配列 1.2 版は、同手跳躍や同指異鍵などの数値が小梅配列史上最も良好で、まさに「10万字サンプルに最適化された配列」でした。しかし、左手薬指が痛くなったり「さまざま」が打てなかったり「ですます体」に弱かったりと、10万字サンプルに特化したが故に世界の広さを知らない、言わば「世間知らずのお坊ちゃま」でもありました。

跳躍や同指異鍵などの数値指標は 1.3.x 版〜1.4.x 版と版を経る毎に悪化の一途をたどりましたが、「10万字の限界」を乗り越えて汎用性を手に入れようと足掻いてきた積み重ねが、現在の蜂蜜小梅配列につながっていきます。10万字サンプルと評価打鍵、そのどちらを欠いても小梅配列〜蜂蜜小梅配列は成立しませんでした。

小梅配列〜蜂蜜小梅配列の作成が長い時間を要しているのは、データ量の少なさを人力でちまちまと補正しているから、なのかもしれません。

MeCab の変換精度を確認する

それならデータを100万字、1,000万字と増やしていけば、最適な日本語配列をもっと短時間で作れることになります。が、現実はうまいこと問屋が卸してくれません。そうです、変換ツールの精度という、古くて新しい課題が付きまといます。

拙稿:廃線ウェブサイトの序文 を、月見草配列の作成で使われたのと同じ MeCab でカナに変換してみました。

元の文章

雑草 —— 廃線・未成線を中心とした、失われた鉄道にまつわるレポートです。鉄分が濃いので服用にはご注意ください(笑)。 廃線や未成線のみならず、失われた列車や車輌等も取り上げています。撮影はバイクツーリングや旅行のついでに行っています。現地では時間に追われがちで、各地で肝心なところを撮り逃したりしていますが、どうかご容赦ください。

廃線跡は、時とともに姿を変えていく生き物です。人の手を離れ放棄された人工物は、自然の猛威に抗う術がありません。風雨雪にさらされ、動植物に侵されて、場所によっては遊休地の二次利用や悪戯等の人為的な要因も加わって、婉曲に言えば熟成していき、単純に言えば朽ち果てていきます。予算をかけて撤去してしまうことも少なくありません。

(後略)

MeCab による「読み」の出力

サビトザッソウ −− ハイセン・ミセイセンヲチュウシントシタ、ウシナワレタテツドウニマツワルレポートデス。テツブンガコイノデフクヨウニハゴチュウイクダサイ(エミ)。 ハイセンヤミセイセンノミナラズ、ウシナワレタレッシャヤシャリョウトウモトリアゲテイマス。サツエイハバイクツーリングヤリョコウノツイデニイッテイマス。ゲンチデハジカンニオワレガチデ、カクチデカンジンナトコロヲトリノガシタリシテイマスガ、ドウカゴヨウシャクダサイ。

ハイセンアトハ、トキトトモニスガタヲカエテイクイキモノデス。ヒトノテヲハナレホウキサレタジンコウブツハ、シゼンノモウイニアラガウジュツガアリマセン。フウウユキニサラサレ、ドウショクブツニオカサレテ、バショニヨッテハユウキュウチノニジリヨウヤアクギトウノジンイテキナヨウインモクワワッテ、エンキョクニイエバジュクセイシテイキ、タンジュンニイエバクチハテテイキマス。ヨサンヲカケテテッキョシテシマウコトモスクナクアリマセン。

私の意図と読みが異なる部分を強調表示 しています。

「行って」を《いって》と読むか《おこなって》と読むかは、送り仮名では区別がつかず、文脈で判断するしかありません。上の文章では、「旅行に行った」のではなく「撮影を行った」という意図で「〜ついでに行っています。」と書いているので、《おこなって》と読むのが正当です。悪文の解釈は難しいと言われればそれまでですが。

kakasi に比べたら MeCab はかなり進歩しているのが見て取れますが、私はまだまだ精度が不十分と判断します。だから10万字サンプルは、手間をかけて読みの正確さにこだわりました。日本語にこだわるからこそ、俺様配列を作っているのですから。

月見草配列のデータの量と質

 かなの連接データ。4連接までをある程度の精度で。kouy氏が公開されている100万字データは貴重なものであるが、検討の結果、4連接のデータとして使うには精度が不十分と判断した。そこで1000万字を目標に収集することとした。

「読み」の出力に誤差が含まれている限りは、分母をどれだけ増やそうが、誤差の含有率はそれこそ誤差の範囲内で増減するだけです。そんな「精度に難あり」のデータから計算された「計算《だけ》配列」は、「精度に難あり」を内包したまま。MeCab が出力した MeCab 語に最適化された「MeCab語配列」と呼ぶならともかく、日本語配列と呼べるほどの精度があるとは思えません。

これでも評価可能な1480万字の内12%程度を切り捨てています。但し、最後の文字が二打鍵の場合はニ打鍵目については評価していますので、打鍵の90%程度は3つ前までを考慮した評価ができています。

これを出現率100万分の1で切り捨てますと、更に10%程を評価の対象外とすることになります。

PCで全文解析するのは、小梅配列の10万字サンプルぐらいがおそらく実用に耐えうる上限値でしょう。分母を大きくするためには、下位ビットを Noise Shaping して抽象度を高めることが必須になります。

しかし、その切り捨てた部分にこそ、意味不明な大量のゴミの山の中にこそ、最大公約数という言葉で括ることができない、執筆者のクセみたいなものが含まれているはず。

人間による評価は出現率10万分の一まででも到底無理でしょう。それでも1万以上ありますから。しかしそこで切ると半分以上捨てることになるのです。手捏ね配列の良い点を認めないわけでは有りませんが、殆どの言い回しを配慮したとか言う主張の客観性はいかがなものでしょうか。

殆どの言い回しを配慮した という言い回しは、私も誇大な表現だと思います。評価打鍵もまた、評価者自身の文章のクセから逃れられません。

月見草は、残念ながらそこそこ頻度がある文字列でも必ずしも打ち良いとは限りません。例えば「いん」が同じ指に配置されているのは一見悪そうですが、最終的にはそれでおかしい訳では有りません。一つ一つの頻度は低くとも数多くの連接が打ち良くなり、総合的にはまさるからなのです。

クセ云々はともかく、「計算《だけ》配列」が精度の十分性を放置したままで「総合的に勝る」とか言ってるのは、これまた誇大な表現に思えます。

posted by 141F at 00:48| Comment(1) | TrackBack(1) | oyayubi | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ご講評いただきありがとうございます。
私の見解といたしましては、「正確な読みの10万字」よりも「MeCabの誤読を含む1800万字」の方が「日本語を遥かに的確にサンプリング出来る」ということです。
詳細は、多少長文となりましたが、リンク先ページをお読み下さい。
Posted by mentaiko at 2013年02月08日 23:08
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック

日本語配列とデータ精度(2)
Excerpt: 挑発にお応えいただき、ありがとうございました>月見草氏。Excel というツールに縛られた10万字サンプルの限界については、私自身も痛感していますので、ことボリュームに関する月見草氏のご指摘に改めて反..
Weblog: Weblog 61℃
Tracked: 2013-02-16 23:18