長文から1文毎に区切りをつけ、単語の出現回数を記録するサンプルです。
テスト環境とデータセットは以下の通り。データセットは青空文庫から取得しました。著作権が消滅したデータは、有償・無償であるかを問わず、自由に複製・再配布・共有することができ、ファイルを元に、実演・口述・翻案など自由に活用することもできるようです。
開発環境
language | version |
---|---|
Python | 3.6.6 |
dataset
No. | 作家名 | 作品名 | 本文 |
---|---|---|---|
01 | 走れメロス | 太宰 治 | メロスは激怒した。必ず、かの邪智暴虐じゃちぼうぎゃくの王を... |
02 | 羅生門 | 芥川 龍之介 | ある日の暮方の事である。一人の下人げにんが、... |
03 | 江戸川 乱歩 | 赤い部屋 | 異常な興奮を求めて集った、七人のしかつめらしい男が... |
基本的に必要なライブラリをインストールして、extract.py
を実行するだけで、書き出しができるようにしています。
terminal
# ライブラリをインストール
pip install regex janome
# 実行
python extract.py
1文抽出のルール
基本的に「。」や「?」で終了する文章を1文として切り出していますが、会話文の場合をどのようなルールにするか、現在検討中です。そのため、会話文の場合、1文の切れ目にカギカッコ「」が入って少し変な感じになっています。
ルール
- 「本文」カラムのデータを1文ずつ抽出。
- 「作品名」を最後に追加
文章 |
---|
ある日の暮方の事である。 |
一人の下人げにんが、羅生門らしょうもんの下で雨やみを待っていた。 |
... |
単語抽出のルール
形態素解析のライブラリはいくつかあるようですが、今回は単語の出現頻度をカウントする機能がついているjanome
というライブラリを使用しています。こちらのサイトが非常に参考になりました。
ルール
- 「本文」の文章を形態素解析。
- 名詞のみ抽出し、出現回数を記録する。
- 以下の品詞と活用形は除外
除外フィルター
["名詞,代名詞",
"名詞,非自立",
"名詞,数",
"名詞,接尾,特殊",
"名詞,接尾,一般",
"名詞,接尾,形容動詞語幹",
"名詞,接尾,サ変接続",
"名詞,サ変接続"]
芥川龍之介「羅生門」
Top 20
単語 | 出現回数 |
---|---|
下人 | 44 |
老婆 | 28 |
死骸 | 14 |
門 | 13 |
雨 | 12 |
男 | 11 |
手 | 9 |
梯子 | 9 |
死人 | 8 |
饑死 | 8 |
火 | 8 |
羅生門 | 7 |
女 | 7 |
上 | 7 |
前 | 7 |
太刀 | 7 |
さっき | 6 |
今 | 6 |
眼 | 6 |
髪の毛 | 6 |
... | ... |
サンプルはGithubに置いておきます。