小説のキーワード
結論から言えば小説からキーワードを抜きだすことに無理があるんだろうな。そもそもキーワードをいくつか抽出してその小説の雰囲気や内容がつかめるわけがない。同じ理由で雑記的な日記も難しそう。
実験的に夏目漱石の『我が輩は猫である』の複合語を抽出してみたところ上位は次のようになった。
迷 - 亭 寒月 - 君 苦 - 沙弥 独 - 仙 ご - とく 東風 - 君 亭 - 君 鈴木 - 君 字 - 下げ 仙 - 君 小 - 供
やはり無理がある。第一、ネット上でなんらかのキーワードで小説を漁るという行為を行なう人もかなり少いはず。実際、キーワード抽出に関連したの論文などは抽出対象自体を論文や新聞に固定している。
余談。『我が輩は猫である』から抽出した『◯◯猫』という複合語は以下の通り(一部誤抽出がありますが)。
雄, 小, 盲, 黒, 乱暴, 等, 無, 無性, 痴, 愚, 雌, 庸, 的, 美, 霊, かい |
猫 |
ちょっと『我が輩は…』っぽくて良くないですか? 笑
複合語抽出
複合語の抽出というのはid:kt-blackout:20040324でも書いたように、キーワード抽出において重要な意味を持ちます。複合語というのはわりと専門的な用語であったり、日常会話などで出にくい言葉であることが多いので、単純に複合語を抜きだすだけでも面白い結果が出ます。
しかしながら、どうやって複合語を見つければ良いでしょうか。形態素解析によって最小の大きさになった形態素のリストから、今度は複合語を見つけてやる必要があるのです。『複合語の抽出』で検索するといろいろと難しそうな論文や文章が見つかります*1。それらは複雑なアルゴリズムを利用しているようですが、正直良く分かりません。
そこで「何事も試すことが重要」の精神のもと、自分流に試してみました。それが思ったより良い結果になったので実は驚いています。そのアルゴリズムは以下の通り(アルゴリズムというほどのものではありませんが…)
- 文章データから名詞を抽出(『名詞-数』と『名詞-非自立』は排除)
- 出来たリストから二つずつ組み合わせて数え上げる。つまり『W』『X』『Y』『Z』という4つの語があるとき、『W-X』『X-Y』『Y-Z』という組み合わせになるので、同じ組み合わせがいくつあるかを数え上げる。
- 以上
ようは総当たりで数え上げているだけです。最初は『どれくらいダメな結果になるか』を見るつもりで試したのですが、意外と良かったので結果を公開します(同様の解析をid:alpinixさんとid:shi_moさんのログに対しても行いました。それらの結果は http://members.jcom.home.ne.jp/j-klein/text/index.html を参照してください)。
http://members.jcom.home.ne.jp/j-klein/text/jklein/hukugou-list.txt
以下はトップ26位を抜きだしたものです。驚いたのは複合語としての精度の高さと、キーワード抽出としての精度の高さです。例えばこの上位26個のデータのうち明らかな抽出ミスは『人 - 人』と『的 - 内容』のみです*2。さらに上記URLのページを見ると精度の高さに驚きます。しかも出てきた複合語自体を私の日記の内容を示すキーワードとしても問題ありません。名詞の出現回数を見るよりも、これらの複合語を見る方が断然良いように思えます。
96 本 - 読了 23 個人 - 的 72 脆弱 - 性 22 ソース - コード 50 お - 勧め 22 セキュリティ - ホール 48 オーバー - フロー 21 可能 - 性 44 暗号 - 化 20 整理 - 法 34 ユーザ - 名 20 従業 - 員 29 基本 - 的 20 一般 - 的 28 文字 - コード 20 ファイア - ウォール 28 的 - 内容 18 コード - 変換 28 プロ - キシ 16 設定 - ファイル 27 解析 - 結果 16 オープン - ソース 26 管理 - 者 15 人 - 人 25 バッファ - オーバー 15 鍵 - 配送
複合語リストと名詞リストの組み合わせからキーワード抽出を行なうようにすれば、面白くなるかもしれません。さぁ、実験、実験。