見出し画像

API機能改善にチャレンジ! 〜空白有無と表記揺れの検証〜

 こんにちは、2022サマーインターンシップに参加させていただいた井上と申します。今回のサマーインターンシップではDS.APIを実際に触らせていただき、現在提供する機能の改善提案を行いました。こちらの記事では課題点の洗い出しから課題検証のところまでの内容と、インターンシップに参加してみての感想をお話しさせていただければと思います。

課題点の洗い出し

まず最初にDS.APIを実際に動かし、課題点を洗い出しました。実際に上がったのは以下のような課題です。

  • Keyword以外の複数同時検索ができない
    キーワードは複数指定できるが、地域、性別などを同時取得ができない

  • APIにどのようなパラメータを入力すればいいか分かりづらい
    スキーマの表示、記載方法などみる方法に慣れていないとわかりずらい

  • 分析に役立つ関連情報が欲しい

    • 例:天気、休日、湿度など

  • 日単位までしか検索できない

  • 表記揺れによって検索結果が分割されてしまう

  • 「楽しい」「高い」など、評判に関するキーワードが出現しにくい

  • Search Trend APIでより詳細な分析がしたい

    • 年齢や性別での詳細検索

    • 過去のトレンドの検索

  • 入力語の文字を含む異なる意味の単語が出現してしまう

課題の特定

これらの課題の中から、以下二つを軸に検討する課題を絞りました。
その結果は以下のようになりました。

  • 独自性:ヤフーでしか提供できない価値/情報か

  • 効果:課題を解決したことにより顧客に与える情報の大きさ

課題と優先度検討

評価の結果、独自性と効果の双方が高いものとして、「表記揺れによる検索結果の分割」と「Search Trend APIでより詳細な検索をしたい」という二つに絞って機能を検討することにしました。
Search Trend APIについては同じくインターンシップに参加していた大峠さんに検証していただいたため、私は表記揺れについてまとめようと思います。

表記揺れの影響を検証

 検証の前に、そもそも表記揺れとはなんでしょうか。言葉の定義は様々だと思いますが、私は、「同じものを検索したい時の表現の多様性」だと考えています。人は同じことを検索するときでも、それぞれのコンテクストやその時の状況に応じて様々な入力を行うと思います。
 例えば、大阪にあるユニバーサルスタジオジャパンのことを調べるとき、皆さんはどのように検索するでしょうか?私は「USJ」と検索しますが、関西の方では「ユニバ」と検索するでしょう。また、Tiktokについて調べる時でも、「Tiktok」とそのまま検索する方もいれば、「ティックトック」をカタカナで検索する人もいるでしょう。他の例で言うと、同じお菓子を「今川焼」と呼ぶ人もいれば「大判焼き」と呼ぶ人もいるようですね。
 これらの検索をする人の興味は同一にもかかわらず、現在は結果が分散されてしまっています。よって分析の際、知りたい事象に対する人の興味全体を把握できない、数が少なくなってしまうと言うことが起こると予想されます。
 そこで、このような表記揺れの結果を統合することにより、一つの物事に対する人の興味を、より大きいボリュームで網羅的かつ正確に把握できるのではないかと考え、検証を行いました。

 検証内容としては、空白の有無の違い/呼び方の違いがある二つのキーワードの検索結果に変化があるか調べるというものになります。

  • 空白の有無
    例:「ポケモン映画」と「ポケモン 映画」

  • 呼び方の違い
    例:「USJ」と「ユニバ」

 具体的には、各表記揺れに対して検索ボリューム、地域による特色、関連単語の傾向などを比較しました。

空白の有無

空白の有無で検索数に差があることがわかりました。一方で、検索の結果によって「空白有り」「空白なし」のどちらが多いかが異なるということが興味深かったです。

「ポケモン映画」と「ポケモン 映画」
「ポケモン映画2020」と「ポケモン 映画 2020」

次に、「ポケモン映画」と「ポケモン 映画」で関連キーワードが異なるか調べてみました。見る感じ関連キーワードは概ね同じようですね。

ポケモンのキーワードのランキング情報

呼び方の違い

同じ意味だけど呼び方の違う単語同士で検索結果を比較しました。まず複数の例で検索ボリュームを見てみると、異なる呼び名がある程度分散して使用されているようです。以下の例だとtiktokとティックトックはほぼ拮抗しています。少し意外な結果でした。

tiktokとティックトックの地域毎の検索ボリューム

一方で言葉によって検索数に大きな相違がある(Sharpとシャープ)ケースも見られました。
 次に地域による特色です。これはほとんどの単語でありませんでしたが、一部の単語では面白い傾向が見られました。以下は先ほどもお話しした「USJ」「ユニバ」の検索ボリュームです。関西圏において「ユニバ」が多く検索されていることがわかります。

地域別の「USJ」「ユニバ」の検索ボリューム

ではこれら二つの呼び方で関連キーワードは異なるのでしょうか。それを検証するため、7月のユニバーサルスタジオに関する検索を確認しました。

USJのキーワードのランキング情報

こちらを見るとUSJではホテルやエクスプレスパスなど、比較的遠方から来る人が検索したい語彙が含まれていることがわかりました。

検証結果まとめ

検証結果をまとめると表のようになります。

検証結果

 この結果を踏まえて表記揺れを統合する場合の効果を改めて考えてみましょう。まずメリットとして、一つの物事に対する人の興味を、より大きいボリュームで網羅的・正確に分析できるということがあると思います。ターゲットを日本全国としたマーケティングにおいて正確な認知を使用できますし、ターゲットが限定されていたとしても、全体→詳細と分析していく際に全体動向を正確に知ることができることには価値があると考えます。
 次に、ユーザ側の表記揺れを吸収できるというメリットもあります。このような表記揺れは自然に起こってしまうものであるため、例えば無意識にマイナーな表現を使用しており、少数のデータしか得られない可能性も考えられます。そのような事態を防ぎ、ユーザが求めている結果を確実に提供するためにも表記揺れの統合は役立つのではないでしょうか。

 最後に地域によって使用する言葉が異なる、という事象についてです。これは表記揺れ統合にメリットデメリットあると思います。まずメリットとしては、日本全体としての認知を統合できると言う利点があります。「ユニバ」と調べた場合でもユニバーサルスタジオジャパン全体の興味を知れたり、逆に「USJ」と検索した場合に関西の方の意見を取りこぼすと言うことがなくなると考えています。

 デメリットとしては、地域固有情報の見落としが考えられます。全体の意見を統合してしまうため、地域固有の需要を知りたい場合には不適切なのではないかと考えます。
 以上のことから、表記揺れの統合には事象への興味全体を取得できると言う意味で価値があると考えます。一方で、地域固有の情報などは失われてしまうため、その点には注意が必要だと感じました。

検証後行ったこと

 上記の検証を行った後は機能検討を行い、サンプルの作成とスライド準備、発表を行いました。
 サンプルの作成は最初pandasで加工したものをお見せするつもりでしたが、メンターの方がローカルで動かせるように手配してくれたため実際のアプリケーションの中で動かすことができました。アルゴリズムとして実装したわけではありませんが、実際にAPIにリクエストを送って結果が返ってきた時には感動しました。
 最終日には他のインターンメンバーの方とともに発表を行い、メンターの方だけでなく部署の社員の方に五日間の取り組みをお話しさせていただくことができました。発表では内容に対する新しいアイデアやユーザーや実装視点のフィードバックをいただきました。自身の考えになかった視点の意見を沢山いただき大変良い刺激になりました。

インターンに参加してみて

 今回は5日間DS.APIを体験させていただき、機能改善の提案を行いました。DS.APIを用いたデータ分析を体験してみて良いなと感じたのは、特定の物事に対する発見だけでなく偶然的な発見も叶うという点です。
 例えば「七夕」について検索したい時は、Search Ranking APIやSearch Volume APIなどでその単語に関する人々の興味を知ることができます。
 一方でそれだけでなく、Search Journey APIやSearcn Ranking APIなどを用いると「七夕」に興味がある人が他に何に興味があるのか、という予測の難しい部分にもアプローチできるのが魅力だなと感じました。
 また、単語として当たりのついていない時、例えば「最近人々はどのようなことに興味を持っているんだろう?」というような問いに対してもSearch Trend APIを用いて応えることができるのが面白かったです。
 さまざまな粒度で人々の興味を調べることができるという幅広さが、DS.APIの魅力なのかなと思いました。

 次に、インターン中感じたこととして、社員の皆様が「ユーザに価値を提供できるか」を常に念頭に置いているということがあります。私は個人や研究室でプログラミングをしていると、つい自分の思いついた機能をどんどん追加してしまいたくなります。

 しかし実際のサービスとして運用するにはコストや時間がかかるということで、何がユーザに大きな価値を提供できるかを考え、優先度を決めて実行していっているというのが印象的でした。社会人になる前にこちらの視点を知ることができたのは非常に有意義だったと思いますし、何よりそのような視点を持っているからこそヤフーが多様なドメインにおいて人々の役に立つサービスを提供できているのかなと思いました。

 加えて、社員の方からインターン生に沢山のことを持ち帰ってほしいと様々な工夫をしていただいたのが嬉しかったです。具体的には、ランチ会の中で部署の様々な人のお話を伺う機会をいただいたり、Slackのハドル機能を繋げたまま作業している時に社員の方が入ってくれたのが印象的でした。また、機能改善の提案だけでなく、実際にAPIの仕組みに触れる機会をいただけたのもありがたかったです。

 このインターンを通して仕事としてのエンジニアリング、そしてヤフーという会社について様々なことを学ばせていただきました。改めて5日間面倒を見てくださったメンターの皆様、部署の皆様、そしてインターンシップを運営してくださった人事の皆様、本当にありがとうございました!!

この記事が気に入ったらサポートをしてみませんか?