Ahogrammer

Deep Dive Into NLP, ML and Cloud

文の分散表現を計算するためのデータセットを作って公開する

先日、SageMakerのObject2vecに新機能が追加された。機能としては、ネガティブサンプリングの自動化、重み共有、学習の高速化といった機能が追加されており、以下のNotebookから試すことができる。このNotebookでは英文の分散表現の計算、モデルのデプロイ、文書検索への応用を扱っている。

github.com

機能の使い方を知るだけなら、上のNotebookを実行すればいいのだが、単に写経するだけでは面白くない。そういうわけで、日本語のデータセットを作成して、文の分散表現を学習できるようにしてみた。データセットは以下のリポジトリからダウンロードできる。

github.com

データセットについて簡単に説明しておこう。

データセットの説明

データセットは、以下の論文を参考に作成した。

論文では英語版Wikipediaからデータセットを作成しているが、この部分を日本語Wikipediaの2018年12月20日に置き換えている。論文と同様、Wikiextractorを使って各記事からリストや図などを除いたPlainテキストだけを抽出して作成した。トータルの記事数は1,132,813であり、異なり語の数は2,420,073になった。

データセットの形式としては、1行に1記事を格納し、文はタブで区切っている。分かち書きには、MeCabとIPADICを使っている。

ニューヨーク 市 の 建築 ニューヨーク 市 の 建築 ...<tab>
...

おわりに

今回はデータセットの作成まで行なった。実際の学習については次の記事で行うことにする。