AIプログラミング

sklearnのCountVectorizerを用いて単語の出現頻度を数えてみる

更新日:

sklearnのCountVectorizerを用いて単語の出現頻度を数えてみる。

今回は単語の出現頻度を数えてみます。単語の出現頻度とは文章中に出てくる単語について何回使用されたかをカウントするもので、sklearnのCountVectorizerを用いて簡単に求めることが出来ます。出現頻度を求める方法は特徴量抽出という手法を用います。特徴量抽出とは、学習データにどのような特徴があるかをベクトル化したもので、今回のケースでは単語の出現頻度がベクトル(数値)にあたります。

使用する文章は以前青空文庫の三国志を分かち書きしたものがあるので、そちらを使用して行っていきます。

青空文庫からPythonで本文を取得したい(分かち書き)

分かち書きした文章を使用する理由としては一般的に日本語の場合は英語と異なり、単語と単語の間にスペースがないことから単語の抽出が難しいためです。分かち書きの手法により単語の分割を行うことで、単語の抽出を容易にしています。

なお、使用する文章はwakachi_text.txtという名前で保存されていることにします。

ソースコード

ソースコードの詳細

文章のオープン

wakachi_text.txtというテキストファイルを開いています。事前にwakachi_text.txtというファイルをカレントディレクトリに格納しておいてください。その後先頭の文章を表示しています。

sckitlearnよりCountVectorizerをインポートする

単語の出現頻度をカウントするためにsckitlearnよりCountVectorizerをインポートしています。

CountVectorizerの実行

先ほどインポートしたCountVectorizerを使用してwakachi_text.txtの文章を学習しています。

抽出した単語を確認する

学習した単語について確認します。量が多いですが分かち書きで区切られた単語が登録されているかと思います。

単語の数を求めてみる

len関数を用いることで学習した単語の数を確認することが出来ます。今回の文章では8384個の単語で成り立っています。

特徴量の抽出

transform関数を使用することで特徴量の抽出を行うことができます。

特徴量ベクトルに変換(出現頻度)

それぞれの文章の単語と、特徴量で抽出した出現頻度について表示しています。

このように簡単に単語の出現頻度を求めることができました。日本語の場合は単語の抽出が難しく一部において不自然な単語がありますが、分かち書きの手法を工夫することで自然な単語として抽出することもできます。英語の場合は比較的簡単に単語の抽出ができるのでいろいろ試してみましょう。

 

-AIプログラミング
-, ,

Copyright© AI人工知能テクノロジー , 2019 All Rights Reserved.