NDL Ngram viewerの正規表現検索が面白い

正規表現検索といえば、テキスト検索に凝ってる人なら知っているけど、そうでもない人は「何それ?」という感じだと思います。

人文系とか質的研究で電子テキストも扱うことがある社会科学系の人は、絶対に知っていた方がよい技術です、が、そう言われても、「何ができるか」わからないとやる気は全然出てこないと思います。ここで 良いあんばいのツールとして登場したのがNDL Ngram viewerの正規表現検索機能です。

lab.ndl.go.jp

正規表現の「.」を試してみる

たとえば、「..新聞」で検索すると、「○○新聞」という検索をしてくれます。 そうすると、以下のように、○○新聞で、数十万冊の明治大正期の資料をざくっと数えてきてくれて、 さらに、新聞ごとにカウントしてグラフにしてくれます。

「正規表現」での検索というのは、「○○新聞」で検索してくれるところまでで、 そのあと分類してカウントしてくれるのはこのviewr独自の便利機能ですので、 正規表現だけでそこまでできるわけではないという点はご注意ください。

ただ、それはともかく、正規表現での検索ができています。たとえば、上の例を見てみると、 正規表現では「.」(ドット)は何らかの1文字を意味しますので、「..新聞」では、何らかの文字が 2つ続いた後に「新聞」という文字列が続く4文字の文字列を検索していることになります。 そうすると、3文字はどうか、4文字はどうか、という風に探してみてもいいでしょう。

そうすると次に気になるのは、「震災」という言葉の明治大正期の使われ方です。 試しに「..震災」と、2文字が震災の前にくる文字列検索してみると以下のようになります。

ここで、「東京震災」を見てみると、

1926年に 3440件と突出しています。同じ年には、「大正震災」1150件、「臨時震災」1011件、となっています。

一方、「..大震災」で検索してみると、「関東大震災」がやはり圧倒的に多いですね。

ただ、検索対象が主に出版物であるためか、震災の年よりも翌年以降が多く、また、1935年、1940年に二つの山がありますね。 ただ、そもそもその年の出版物(というよりこのデータベースが収録している資料)の多寡で母集団が変わっている可能性も ありますので、時系列で一つの単語を追ってみたいときは、以下のボタンをONにして、出現頻度/総Ngram数でみてみるとよいかもしれません。

そうすると、以下のように、割となだらかな感じになります。

他に似たような単語が使われたケースはないのかな…と思って、「大震災」の前につける「.」を一つずつ増やして検索してみると…五文字付与してみたところで、「九月一日の大震災」というのが割とヒットしました。なるほど、という感じですね。

正規表現の「+」を試してみる

「.」だけでは芸がないので、もう少し正規表現を試してみましょう。「+」です。 「+」は、前の文字を1回以上繰り返す、ことを意味します。これを用いると、たとえば、 「.+大震災」で検索した時に以下のようになりました。

この場合は、先ほどまでのように文字の数をいちいち増減させなくてもざくっと探してきてくれますので楽ですね。(その代わり、細やかさは少し減りますが。)

また、「大」も外して「.+震災」で検索すると以下のようになりますので、

これはこれでまた若干の発見がありますね。

なお、検索結果頁の下の方を見ていくと、各単語の総出現頻度も並んでいるので、グラフに表示されないものも含めてチェックできてこれもとても便利ですね。

こうなってくると、他の正規表現記号も便利なのではないか…ということで、角括弧[...]も試してみましょう。

正規表現の角括弧[...]を試してみる

正規表現の角括弧[...]は、「各括弧内にあるいずれか1文字」を指します。たとえば、[あいうえお]と書いておくと、「『あいうえお』のうちのいずれかの1文字」を指します。 ハイフンを用いると文字の領域を示すこともでき、[あ-お]と書くと、あ~おのいずれかの1文字、ということになりますので、この場合は[あいうえお]と同じ意味になります。

さて、というわけで、今度は「いずれか1文字」を検索してみたいのですが、さて、何かよい方法はあるでしょうか…?

ということで、ちょっと思いついたのは、「戦前に図書館がどのように扱われていたかを調べて見る」ということです。これによってすべてを確認できるわけではないですが、 図書館について何かを行ったり言及したりする場合、「図書館を」や「図書館に」などの助詞が着くことが多いような気がします。そこで、角括弧の登場です。「図書館[にを]」というキーワードで一度に両方を検索できます。さらに、それに対して何かのアクションを行っていたことを検索するなら、上でやってきたことを、今度はこの検索語に続けて付与すればいいですね。たとえば「図書館[にを]」.+」とか。

さて、どうでしょうか…?

グラフだと図書館の設置に関する言及が結構みられますね。図書館を設け/図書館を設立/図書館を設置 といったものが比較的上位に来ていますね。

さらに、頁の下の方にずらっと並んだ検索語まで見てみると、もう少し面白い感じになりますね。

図書館に寄贈、というのが271件も出てきます。図書館に保存、も255件です。図書館を経営、というのも193件あります。さらに下の方にもちょこちょこ面白い表現が出てきます。

が、ここで、カタカナを忘れてはいけない、ということを思い出しました。「図書館[をにヲニ].+」としておくことで、カタカナも含めて検索できます。こうなると、今度は情報量の少ない結果がたくさん並んでしまってちょっといまいちですね。検索結果を集約する際に、カタカタとひらがなをまとめてくれる機能があるといいですね。 それはともかく、この結果を手がかりに、さらに色々な検索ができそうですね。まずは、続く文字を2文字だけに限定してみます。これは「.」を二つ並べて

図書館[をにヲニ]..

でいいですね。この結果は以下のようになり、上に貼り付けた画像の検索結果と似たような感じですが、検索結果一覧を見ていくと、やはり色々あって面白いですね。

ここで、図書館を作ることに関する表現が多いので、その表現の変遷をみてみましょうか。この場合、(...|...)を用います。「|」でorを表し、丸括弧内のいずれかの文字列を検索します。

正規表現の「(...|...)」を試してみる

というわけで、

図書館[をにヲニ](設立|設置|開設|創立|新設)

という検索語で検索してみると、以下のようになりました。

これはこれで面白いですが、やはり、カタカタとひらがなを集約しないと、ぱっとただけでは数の変遷はわかりませんね…。 とりあえず、検索結果の数値をダウンロードできるようになっていますので、ダウンロードして自分でまとめてみるとよさそうですね。

というようなことで、NDL Ngram viewerのお試しでした。

ちなみに、正規表現は、かなり長く使われているいわゆる「枯れた」技術で、入門者むけ解説もあちこちのサイトにあります。 おすすめはこのあたりです⇒「とほほの正規表現入門 - とほほのWWW入門」。