google suggestの検索候補予測を網羅的に調べるためのワード群を作ってみた

例の検索候補予測クローラを汎用化して使えるような仕組みに出来ないかなーと思ってまして、手始めに候補予測を網羅的に調べるためのワード集を作ってみました。なんかどこかのサイトに落ちてそうな気がしたんですが見つからなかったので愚直に書き並べました…。

ちなみに候補候補予測クローラって言ってるのは、以下の記事で書いたデータ収集ツールのことです。

検索候補を網羅的に調べるために、まずちょっとgoogleでみんなが検索するワードの構造について考えてみます。SEOに詳しい人、何かいい分類方法があれば誰か教えて下さい>< ちなみに直近では、みんながドラクエ10の何について興味があるのかを知りたいのですよね。。それを元にドラクエ10の未来を考えたいと言う話です(結局ドラクエだ…。)

今回の記事は元データを作るところまで。続きは次回!ご期待くださいまし。

検索ワードのカタチ

基本は、検索して知りたいことのベースとなるワードがあるんじゃないですかね。調べたいこと、名詞が多いのかな。そしてそれのワードについて更に細分化するためにサブワード、サブワード2などを追加して検索していくような気がします。以下の感じ。

ベースワード サブワード1 サブワード2 サブワード3 ...

例:
ドラクエ10 攻略 ネルゲル
ドラクエ10 アイテム 売値

ベースワードによってサブワードとして何が付くかは当然変わってくるし、サブワード2や3がなくて1だけのものもあれば、4や5まであるものもありそうです。

目指すところ

最終的に、あるベースワードに関連する検索ワード群がどういう分布になっているか、サブワード1、2、3…がどういうものが検索され、どの程度の検索量があるのか、と言うことが分かる仕組みを作りたい。その手始めに、まずはあるベースワードについてサブワード1を網羅的に集められる仕組みを作れないかを考えてみます。

まずは、愚直にいく

ベースワードを入力した後のサブワード1の入力は、1回のリクエストで取って来れます(上位10件まで)。googleの検索候補予測のAPIの仕様は前回の記事に書いた通りなので、そちらをご参照下さい。

サブワード1に入って来るものは無数にあり得るのですが、APIを使うことである程度人気のものが絞り込めます。例えば

と入力した時点での予測をAPIに聞けば、

ドラクエ10 amazon
ドラクエ10 アップデート
ドラクエ10 アクセサリー
ドラクエ10 アイテムコード
ドラクエ10 アクセサリ
ドラクエ10 アマゾン
ドラクエ10 アルミラージ
ドラクエ10 アローインプ
ドラクエ10 あづみ
ドラクエ10 麻の糸

と言う感じでリストをゲットすることが出来ます。なのでいったんこれをそのまま使います。

入力され得るキーの候補を網羅的に考える(1文字目)

例えば ドラクエ10 と入力した後に、日本人はどのキーを打つ可能性があるか。そりゃまぁ日本語キーボードのほぼ全てなんですが、大体以下の辺りとしましょう。

  • 英文字(a-z)
  • 数字(0-9)

英文字、英語で検索する場合はどれでも入り得ますが、日本語で検索する場合は日本語の50音を入力するための子音しか入り得ません。それを元にa-zまで、どれが入り得るのかを考えてみたんですが以外とどのアルファベットも入力され得るんじゃないかなと。表にすると以下の感じです。("くぁ" とか普通入れないだろ…)

a
b
c
d

ku
ke
ko
sa
si

sya
syu
syo
ja
ju

いくつか使わない文字もありますが、少数なので全部使う、入力し得るってことにしておきます。

入力され得るキーの候補を網羅的に考える(2文字目)

次は2文字目です。「ドラクエ10 a」と入力した後に何を入れ得るか。

  • 英単語の場合 → 英文字なら何でも入り得る
  • 日本語単語の場合 → 基本の50音なら母音、"きゃ" とか "ぴゃ" であれば子音

と言う感じ。

というわけで、数字が途中で入って来ることや、英語と日本語が混ざったような文字(造語というか、固有名詞であるかも。akb48とか、c2dmとか)な連続を無視すれば、基本は上に書いた表の入力パターンさえカバーしておけばほぼ網羅出来るのではと言う結論に至りました。

以上のことから候補予測を網羅的に調べるためのワード群(2文字分)を作る

と言うわけで、最終的に作ったワード集(1文字分)は記事の一番下に書いた通りです。一覧にある文字列をExcelで縦と横に並べてconcatenateした各セルの文字列たちが、2文字分のワード集になります。一列が153種類なので、総数は2乗の23409個。なんか一部重複してたり無駄があるので何とかしたいけど、面倒なのでしばらくこれでいきます。もっと良い網羅的な探索方法があれば教えて下さい。

これを元に、次回はドラクエ10でみんな何を検索しているかを調べてお送りします。誰得の企画…でも俺得!(楽しいわ…)

最終的に作った検索候補予測を網羅的に調べるためのワード群(1文字分)

a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
ka
ki
ku
ke
ko
sa
si
su
se
so
ta
ti
tu
te
to
na
ni
nu
ne
no
ha
hi
hu
he
ho
ma
mi
mu
me
mo
ya
yu
yo
ra
ri
ru
re
ro
wa
wo
n
ga
gi
gu
ge
go
za
zi
zu
ze
zo
da
di
du
de
do
ba
bi
bu
be
bo
pa
pi
pu
pe
po
kya
kyu
kyo
gya
gyu
gyo
qa
qi
qe
qo
gwa
gwi
gwe
gwo
sya
syu
syo
ja
ju
jo
tya
tyu
tyo
cha
chu
cho
dya
dyu
dyo
dha
dhu
dho
tha
thu
tho
nya
nyu
nyo
hya
hyu
hyo
bya
byu
byo
pya
pyu
pyo
fa
fi
fe
fo
va
vi
ve
vo
mya
myu
myo
rya
ryu
ryo