# ATOK不思議現象解決之顛末

ATOKの単語登録データを修正しようと思って、ちょっとした「不思議現象」に遭遇しましたが、なんとか解決して原因も分かったので、いつものとおり自分メモ*1として記事にしておきます。

きっかけは、「れく→連絡」という単語登録の品詞を「名詞」から「名詞サ変」に変更しようとしたことでした*2。いつものATOKツールバー

から[辞書メンテナンス] →[辞書ユーティリティ]を開き、[辞書ユーティリティ]ダイアログで「れく」を検索しました。

ヒットしません……

なんで……?

1. 原因の特定(ぼんやり)から一覧出力まで

あらためて[辞書ユーティリティ]画面を見ると、なんだか様子が変です。

ここに見えているうち「ういし→ウィジェット」とか「うえあら→ウェアラブル」はたしかに登録した覚えがありますが、「うぉずにあっく→ウォズニアック」とか、まして「うってるんだから→売ってるんだ~」なんて、単語登録した記憶はまったくない。登録するにしても、品詞が「名詞サ変」なんてありえない……

このあたりで、不思議現象の原因はぼんやり見えてきましたが、まずはこのゴミをなんとかしたい。最悪、今の登録を全消去して、エクスポートしてあった単語登録データを登録し直せばいい。

ATOKの単語ユーティリティって、登録されている内容を全消去するというコマンドが実はありません*3。どうするかというと、

  1. 今の登録をすべてエクスポートする。
  2. そのデータをもとに、[ツール]→[ファイルから登録・削除]で削除する。

という手間がかかります。そこで、まず[ツール]→[単語・用例の一覧出力]を実行するわけですが、今回まず大きくつまずいたのがここでした。

ファイル名を受け付けてくれない……。念のために拡張子 .txt を付けてもダメ。もしかしたら……と思って、[参照]を押し、[出力ファイルを参照]ダイアログでファイル名を入力したら通りました。

つまり、こういう風に[ファイル名]フィールドにフルバスが入らないとダメなんですね。ふつうは、このフィールドにファイル名を入れて[実行]すると、その時点で保存ダイアログが開くと思うんですけど、たまにこういう動作があります*4

ともあれ、これで全リストをエクスポートできました。それを開いてみてビックリ。登録数が13,000近い。自分の記憶では、増えててもせいぜい5,000~6,000だったはず。

英数字を変換した(たぶん、かな入力状態で英数字に当たるキーを打って半角英数字に変換した操作)結果が登録されていたり、

かな入力してそのままカタカナ変換した結果、たとえば「アイスラッガー」とかが登録されていたりします。「あいぜんぼーぐ」はなんでひらがななんだろう。

実は今までも、こんな風に「自分で単語登録したつもりはないけど変換が学習される」ことはありました。ATOKの「自動学習」機能です。でも、冒頭のスクリーンショットで分かるように、自動学習されたような内容が「単語登録」つまり任意に登録した結果として登録されているのでした。

状況が分かったところで、ではこれを[ファイルから登録・削除]機能で全消去して、以前の単語登録データを登録しようかと思いましたが、うかつなことに、単語登録データは最新でもほぼ1年以上のものしか見つかりません。最悪それでも今よりマシと思いつつも、今のデータからゴミを削除できないかと思い至りました。ここからが作業の第2ステップです。

2. ゴミの削除 - PHONETIC関数でフィルター

まず、一覧出力の冒頭に続く英数字変換の学習結果を削除します。これは一瞬ですみまたが、その次は、たぶんゴミが紛れた条件を見ていかないといけないので、Excel に貼ってみました。

少し眺めていると、勝手に追加された単語について、以下のことが分かります。

  • 「あいすらっがー→アイスラッガー」のように、ひらがながカタカナに変換されて学習登録されたパターンがある
  • 「あいぜんぼーぐ」のようにひらがなのまま確定学習されたパターンもある
  • そのいずれも「名詞サ変」に設定されているらしい

そこで、D列にカタカナ読みを取得する関数を使います。

=PHONETIC(A88)

です。そのうえで、テスト列を2つ。E列では、ひらがな→ひらがなのパターンを検出するために

=IF(A88=B88, TRUE, "")*5

とし、F列はひらがな→カタカナのパターンを検出するために

=IF(B88=D88, TRUE, "")*6

としました。

そして、E列のフィルターで「TRUE」を除外し、かつF列のフィルターでも「TRUE」を除外すれば、まず最初のゴミを消せます。

それから、「○○○○から」みたいな文字列が「○○○○~」の形で登録されているのもあったので、それもフィルターアウト。

これでだいぶゴミはなくなりましたが、最後に、なぜか半角カタカナが登録されているケースもありました。

3. 半角カタカナの削除 - ChatGPTにも手伝ってもらって

半角カタカナを含むエントリーを削除するというのは、Excel上ではできそうにない――私の知識では――ので、ここでテキストファイルに移ります。秀丸エディタ上なら、grep機能を使って「半角カタカナを含まない行だけ拾い出すこともできるからです。

半角カタカナを表すには、正規表現の範囲指定もできるのですが、文字コードの範囲を確認するのが面倒だったので、ここはChatGPTくんに手伝ってもらいました。

こういう作業ならお手のもの。間違えようもありません。濁音半濁音と、拗音まで示してくれています。この結果をちょい加工(半角スペースが入っているので削除。改行もトル)すると、

[ァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ]

こういう乱暴なパターンができます。これを秀丸エディタのgrep機能で使い、ただし[ヒットしない行]というオプションを使えば、半角カタカナを除いた一覧を残すことができます*7

これで、ようやくゴミが(ほぼ)ない単語登録リストができあがり。エントリー数も5,600ほどになったので、これでいいはずです。

4. 余分な学習をしないように設定を変更

最後に、こんな不思議現象が起きた根本原因をつぶしておきます。ATOKのメニューバーから[プロパティ(環境設定)]を選択して[辞書・学習]タブを開き、[学習]セクションにある[詳細設定...]をクリックします。

今回の不思議現象の原因になっていそうなのは、上の4つでしょう。こんな設定にした記憶はないんですが、アップデートのときとかに勝手に変えられたかな~(そういうことがときどきある)。すべて「しない」に変更して、これでしばらく様子を見ることにします。ちなみに、ATOKの最新版でも変換や学習の機能について「AI」が謳われているのですが、その影響はまだ(プラスもマイナスも)あまり確認できていません。

以上、原因解明から解決までが30分ほど、この記事を書くのにかかったのがだいたい2時間。このくらいのトラブルなら解決できるスキルが自分にあってよかったなぁ、とつくづく思った顛末でした。

*1:この「自分メモのためのブログ記事って、けっこう役に立ちます。書いたこともその内容もすっかり忘れていて、何か困ったことがあってググったら自分のブログがヒットしたという経験も、一度や二度ではありません。

*2:ATOKの単語登録で、品詞の設定はけっこう大切です。この場合なら、「れく→連絡」という登録の品詞が名詞だと、「れくする→連絡する」とは変換してくれないので、「れく」「する」と切って入力しなければなりません

*3:そのはずです。私が知らないだけで、もしその方法があるのなら、どなたかご教示ください

*4:Trados Studioでも、どっかの操作にそういう挙動があった気がします。

*5:A列とB列が同じひらがななら、TRUEと表示。

*6:B列とD列が同じカタカナなら、TRUEと表示。

*7:grep結果から不要な情報を除く必要もありますが、その辺はすでにマクロにしてあります。