こんにちは.開発部のsakura ( @818uuu )です.
普段はレシピ動画サービス クラシルの検索を担当しています.
今回は辞書シノニム管理の運用について述べます.
一般的にもなかなか知見が共有されていない部分なので担当者の方は見て損はないと思います.
では,さっそく内容に入っていきます.
作業内容
辞書シノニム作業に必要な手順は主に2つです.
- キーワードの発見
- キーワードの登録
1.キーワードの発見
そもそも辞書シノニムがきちんと整ってないキーワードをどうやって発見するかという話があります.
自社では色々なポイントから見つけているのですがいくつかご紹介します.
ユーザーが検索したキーワードログから見つける
クラシルでは毎日ユーザーが検索したキーワードをチェックしています.
そのキーワードを検索回数が少ない順にソートして辞書シノニムがまだ未対応そうなキーワードを発見します.
なぜ検索回数が少ない順にソートするかというと,検索回数が多いものは既に対応済みであるからです.
キーワードごとの離脱率から見つける
これも1つ上の方法と似たものですが,キーワードごとの離脱率もチェックしています.それほど珍しい単語でもないのに離脱率が高いと辞書シノニムが未対応な可能性も高いのでここから見つけることもあります.
気づいた方から直接教えてもらう
社内の方やcsのフィードバックから教えていただき気づくこともあります.
本物の辞書を使う
この本物の辞書というのは検索の意味合いではない広辞苑といった一般の人が使う辞書のことです.
どうしても上記3つの方法だと検索後の対応になってしまいます.いままでに一度も検索されたことのないキーワードには対応できません.
そこで本物の辞書(食材辞典のようなもの)をあいうえお順に見て珍しそうなキーワードも登録している時期もありました.今ではコスパが悪いのでやっていません.
他にも色々な方法で辞書シノニム未対応のキーワードを見つけることが出来ます.
2. キーワードの登録
クラシルには自社で開発したMondoruというサービスがあります.
Mondoruを使って該当キーワードを辞書・シノニムに登録しています.
登録した後は,テスト環境で一回検索することも必ず行っています.
更新頻度
クラシルではほぼ毎日辞書シノニムのメンテナンスを行っています.
作業時間
登録するキーワードの数に依存しますが,毎日平均して15分もかかっていないと思います.
辞書シノニムの運用を引き継いだ当初は4時間くらいやっていた時期もありました.
モチベーション
辞書シノニムを修正してきれいに形態素解析されて検索できた時はめちゃくちゃ気持ちいいです.
ここ半年辞書シノニムを担当していますが幸せです.
余談
検索が好きだったので入社する前に何百個かのキーワードでクラシルの検索を調査してメモしていました.
その時のデータも辞書シノニムの改善に大いに役立ちました.
気になっていること
自動化
辞書シノニムは一概に自動化できない部分があるのが難しいところです.
なぜなら辞書シノニムには意外にも専門的な知識が必要だったりするからです.
例えば私は辞書シノニムを担当しててはじめて「ふき味噌」=「ばっけ味噌」ということを知りました.こういうのをどうやって自動化するんだろう,と思っています.
辞書シノニムの自動化について知見をもっている方がいればぜひ教えていただきたいです.
Sudachi
Sudachiというanalyzerが気になっています.一般的にはanalysis-kuromojiを使っているところが多いと思うのですが(自社もそうです),Sudachiのスライドを見る限り高品質+高機能そうなのでとても興味があります.
Sudachi ❤︎ Elasticsearch - Speaker Deck
最後に
辞書シノニム管理をきちんと運用することで地道ではありますが確実に検索はよくなっていきます.
今回書いた内容がどなたかの参考になって検索がよくなっていけば嬉しいです.
delyではエンジニアを募集しています.よろしくお願いします.