
悩める後輩のために社員名の辞書を作りました
こんにちは、YaaSです。
ナビタイムジャパンのMaaS事業部に所属していて、渉外業務や社内技術部門との各種案件の調整を担当しています。
きっかけ
名前が「公康」という後輩がいます。皆さんはどう読まれますか?
プロ野球が好きな方にとっては、投手としても監督としても何度も日本一に輝いた方と同じ名前ですので「きみやす」と読むかもしれません。
実際は、後輩の名前は「まさやす」と読みます。
本人も自身の名前を変換するときには、きみやすと入力しているとのこと。幼少期からそういうもんだ…と慣れてしまっていると言ってました。(ちなみに、彼は野球をあまり見ないそうです。なおさら不憫…)
さすがに、ずっと自分の名前を別の人の読み方で変換し続けるのはどうなんだろう?と思い、後輩のために社員の名前を正確に変換できる辞書を作ってみることにしました。
社員にインタビューしてみた
まさやす君以外にも社員の名前で困ったエピソードというのを集めてみました。すると、意外にも多くの事例がありました。(すべて仮名です)
同じ音が続く名前の時に、どっちの文字が先かわからなくなる
例)「なな」さん→菜奈?奈菜?
同音の似たような文字の使い分け
例)「かしま」さん→しまは島?嶋?
例)「わたなべ」さん→なべは辺?邉?邊??
地名と混濁
例)「髙﨑」さん→群馬県の都市は高崎のため、正しく変換されることが少ない(なんなら自身も高崎と記載することもあるそう)
著名な呼び方でしか変換できない
例)「大下」さん→実際には「おおさがり」と読むが「おおした」から変換している
現実に合わせて自分が慣れればいいという、半ば諦めのような胸中の方もいれば、人の名前を間違って変換したら失礼…なので、いつも社内の座席表を見て確認している、という方もいました。
名前の変換は、実はちょっとした悩みごとのオンパレードだったのです。
情報の調達
まずは社員の名簿があるかどうか情シス部門に問い合わせました。すると、各社員の所属を確認するためにデータがそろっているとのこと。姓と名のかなが分かれていて、辞書の作成にぴったりな情報がありました。
イメージは下の表のような感じ。
社内のみ利用する前提のもと、変換辞書の作成にとりかかることにしました。

辞書のデータ構成
入力に必要な文字列は姓と名に分けて辞書を作成することにしました。変換後はフルネームを返します。
業務中に名前を呼ぶ際、姓のほうか、複数名いらっしゃる場合は名の方でお呼びする機会が多いです。なので、フルネームを入れて変換するより、別で分けたほうが実状にあっているだろうという判断で仕様を決定しました。
上記の名簿を基にすると、姓は「うらわ」さん、「なかやま」さん、「わたなべ」さんがそれぞれ複数名います。名は「みつる」さんが2名です。
よって、みつると入力して変換した場合に、「飯山 満」さん「左近 充」さんが出てくるのが期待値です。
サポートした形式
できる限り多くの人の環境で利用してもらえるように辞書フォーマットの調査を行い、概ねWindows(Microsoft IME) / MacOS(日本語IM) / Google 日本語入力の3種類ほどに対応すればよいだろう、としました。
それぞれ一括登録のフォーマットがありますが、特徴があります。
Windows(Microsoft IME):読みと語句、品詞の種類をタブ区切りで記述。文字コードはS-JIS
いいやま 飯山 満 人名
みつる 飯山 満 人名
うらわ 浦和 美園 人名
みその 浦和 美園 人名
MacOS(日本語IM):plist(XML)形式。shortcutキーに読み、phraseキーに語句を辞書型で記述。文字コードはUTF-8
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>phrase</key>
<string>飯山 満</string>
<key>shortcut</key>
<string>いいやま</string>
</dict>
<dict>
<key>phrase</key>
<string>飯山 満</string>
<key>shortcut</key>
<string>みつる</string>
</dict>
<dict>
<key>phrase</key>
<string>浦和 美園</string>
<key>shortcut</key>
<string>うらわ</string>
</dict>
<dict>
<key>phrase</key>
<string>浦和 美園</string>
<key>shortcut</key>
<string>みその</string>
</dict>
</array>
</plist>
ちなみに、辞書生成ツールはpythonで作成したのですが、plistlibという便利なライブラリが標準で装備されていて、ほんの5行程度で実装が可能です。
# MacOS用(plist作成)
p_list = []
for row in tsv_list: #tsv_listはWindows用フォーマットがベース
p_list.append(dict(phrase = row[1], shortcut = row[0]))
with open('MacOS_jananese_search.plist', mode='w', newline='', encoding='utf-8') as mac_file:
mac_file.write(plistlib.dumps(p_list).decode())
Google 日本語入力:Windowsとフォーマットは同一だが、文字コードをUTF-8に変換(例は省略します)
この辞書を登録すれば、なかやまと入力して変換するとこのとおり。仲山さんもフルネームで候補に出てくるようになりました。

なのでこの辞書にご満悦でした。
社内の反響
こうしてできた変換辞書を社内にお知らせしたところ、slackの書き込みに対して60名を超える方から「いいね!」のリアクションいただきました。全社宛てのメッセージに対して50名以上の反応があることは珍しく、実は待望されていたんだなと実感しました。
いくつか喜びの声を抜粋しました。
便利!すごい!
漢字変換によるストレスがかなり軽減した
私の名前を探してもらうときにもヒットしやすくなるんじゃないだろうか
サークル活動の参加者の名簿を作るときに超絶楽になった!
最後に
立案からリリースまでの延べ時間はだいたい4時間程度でした。サクッと作って多くの方に喜んでいただける、とてもコスパの良い仕事ができました。
直接の業務にかかわることじゃないけれど、実は業務上で困っているものっていうのは、意外と身近なところに落ちているんだなということをあらためて思いました。
名前というのは生涯ずっと付き合っていくもの。自分もできれば間違ってほしくないし、相手の名前を間違うのも失礼。そう考えると、余計にタイプミスには気を使ってしまいます。そんなストレスから少しでも解放できたなら、製作者として何よりも一番の喜びです。
