janomeのAnalayzerに名詞の連続のまとめあげ(複合名詞化)を行うCompoundNounFilterがあるので、今回はこれを使ってみます。
下記ページを参考にしました。
janome公式 Analyzer の使い方
け日記:Python janomeのanalyzerが便利
・インポート
from janome.tokenizer import Tokenizer from janome.analyzer import Analyzer from janome.tokenfilter import * import pandas as pd
janomeのtokenizerのほか、analyzer、tokenfilterをインポートします。
・テキスト読み込み
text="建設が増えている大規模な太陽光発電施設について、環境省は森林を伐採するなど環境への負荷が大きいとして、環境影響の調査や住民への説明を事業者に義務づける「環境アセスメント法」の対象にする方針を固めました。"
2018年6月29日 NHKニュースweb 「大規模太陽光発電施設 環境アセスメント法の対象へ」より。
・普通に分かち書き
t = Tokenizer()
tokens = t.tokenize(text)
word_list=[]
for token in tokens:
word = token.surface
word_list.append(word)
words_wakati=" ".join(word_list)
words_wakati
'建設 が 増え て いる 大 規模 な 太陽光 発電 施設 について 、 環境省 は 森林 を 伐採 する など 環境 へ の 負荷 が 大きい として 、 環境 影響 の 調査 や 住民 へ の 説明 を 事業 者 に 義務づける 「 環境 アセスメント 法 」 の 対象 に する 方針 を 固め まし た 。'
「環境影響」が「環境」「影響」、「事業者」が「事業」「者」、「環境アセスメント法」が「環境」「アセスメント」「法」に分かれています。
・CompoundNounFilterを使ってAnalayzerで分かち書き
token_filters = [CompoundNounFilter()]
a = Analyzer(token_filters=token_filters)
tokens=a.analyze(text)
word_list=[]
for token in tokens:
word = token.surface
word_list.append(word)
words_wakati=" ".join(word_list)
words_wakati
'建設 が 増え て いる 大 規模 な 太陽光発電施設 について 、 環境省 は 森林 を 伐採 する など 環境 へ の 負荷 が 大きい として 、 環境影響 の 調査 や 住民 へ の 説明 を 事業者 に 義務づける 「 環境アセスメント法 」 の 対象 に する 方針 を 固め まし た 。'
「大規模」は「大」「規模」に分かれたままですが、「太陽光発電施設」「環境影響」「事業者」「環境アセスメント法」が複合語として一つの名詞になりました。
上記文章はエネルギー基本計画(案)の前文です。これを同様にCompoundNounFilterを使って分かち書きすると、2011年3月の東日本大震災及び東京電力福島第一原子力発電所事故を受けて、政府は、2014年4月、2030年を念頭に、第4次エネルギー基本計画を策定し、原発依存度の低減、化石資源依存度の低減、再生可能エネルギーの拡大を打ち出した。第4次エネルギー基本計画の策定から4年、2030年の計画の見直しのみならず、2050年を見据えたパリ協定への対応、より長期には化石資源枯渇に備えた超長期の対応、変化するエネルギー情勢への対応など、今一度、我が国がそのエネルギー選択を構想すべき時期に来ている。"
このようになりました。2011年3月 の 東日本大震災 及び 東京電力福島 第 一原子力発電所事故 を 受け て 、 政府 は 、 2014年4月 、 2030年 を 念頭 に 、 第 4次エネルギー基本計画 を 策定 し 、 原発依存度 の 低減 、 化石資源依存度 の 低減 、 再生可能エネルギー の 拡大 を 打ち出し た 。 第 4次エネルギー基本計画 の 策定 から 4年 、 2030年 の 計画 の 見直し のみ なら ず 、 2050年 を 見据え た パリ協定 へ の 対応 、 より 長期 に は 化石資源枯渇 に 備え た 超 長期 の 対応 、 変化 する エネルギー情勢 へ の 対応 など 、 今一度 、 我が国 が その エネルギー選択 を 構想 す べき 時期 に 来 て いる 。
「東京電力福島第一原子力発電所事故」は「東京電力福島」「第」「一原子力発電所事故」に、「第4次エネルギー基本計画」は「第」「4次エネルギー基本計画」に分かれてしまっています。
また、「東京電力福島第一原子力発電所事故」では「東京電力福島第一発電所」と「事故」を分けてほしいところですが一つにまとめられています。
・確認
text='東京電力福島第一原子力発電所'
t = Tokenizer()
tokens = t.tokenize(text)
for token in tokens:
print(token)
東京電力 名詞,固有名詞,組織,*,*,*,東京電力,トウキョウデンリョク,トーキョーデンリョク 福島 名詞,固有名詞,地域,一般,*,*,福島,フクシマ,フクシマ 第 接頭詞,数接続,*,*,*,*,第,ダイ,ダイ 一 名詞,数,*,*,*,*,一,イチ,イチ 原子力 名詞,一般,*,*,*,*,原子力,ゲンシリョク,ゲンシリョク 発電 名詞,サ変接続,*,*,*,*,発電,ハツデン,ハツデン 所 名詞,接尾,一般,*,*,*,所,ショ,ショ
「東京電力」は固有名詞として辞書に登録されているようです。「第」は名詞ではなく、接頭詞。そのほかは全て名詞です。
詳細は分かりませんが、janomeのCompoundNounFilterでは、名詞+名詞=名詞と見なして複合名詞を作っているようです。「第」は名詞ではないため複合語にはならず、この部分で分かれてしまっています(大規模、超長期も同様)。
前回行った、エネルギー基本計画(案)に出てくる単語の出現回数もCompoundNounFilterを使って複合名詞を考慮して数えてみました。
・複合名詞を考慮してエネルギー基本計画(案)の単語出現回数を数える。
text_file = open("enegy_plan.txt")
full_text = text_file.read()
token_filters = [
CompoundNounFilter(),
POSKeepFilter('名詞'),
POSStopFilter(["名詞,代名詞","名詞,非自立","名詞,数"]),
TokenCountFilter()]
a = Analyzer(token_filters=token_filters)
tokens=a.analyze(full_text)
counts=pd.DataFrame()
for count in tokens:
counts=counts.append([list(count)],ignore_index=True)
counts.columns=["単語","回数"]
counts=counts.sort_values(by="回数", ascending=False).reset_index(drop=True)
counts[:200]
janomeのTokenCountFilterを使って単語の出現回数を数えています。詳しくは前回記事をご参照ください。
・単語/複合名詞の出現回数(200位まで)
| 単語 | 回数 | |
|---|---|---|
| 0 | 取組 | 178 |
| 1 | 必要 | 149 |
| 2 | 我が国 | 147 |
| 3 | 再生可能エネルギー | 122 |
| 4 | 実現 | 121 |
| 5 | 活用 | 115 |
| 6 | 炭素化 | 108 |
| 7 | エネルギー | 104 |
| 8 | 確保 | 97 |
| 9 | 重要 | 96 |
| 10 | 推進 | 96 |
| 11 | 技術 | 85 |
| 12 | 課題 | 84 |
| 13 | 強化 | 84 |
| 14 | 導入 | 76 |
| 15 | 地域 | 73 |
| 16 | 対応 | 73 |
| 17 | 利用 | 68 |
| 18 | 新た | 66 |
| 19 | 拡大 | 65 |
| 20 | 開発 | 64 |
| 21 | 国 | 61 |
| 22 | 促進 | 58 |
| 23 | 構築 | 58 |
| 24 | 世界 | 58 |
| 25 | 水素 | 57 |
| 26 | 可能 | 56 |
| 27 | 原子力 | 56 |
| 28 | 検討 | 56 |
| 29 | エネルギー源 | 56 |
| 30 | 整備 | 54 |
| 31 | 可能性 | 51 |
| 32 | 今後 | 50 |
| 33 | 省エネルギー | 49 |
| 34 | 向上 | 47 |
| 35 | 期待 | 47 |
| 36 | エネルギー転換 | 45 |
| 37 | 電力 | 44 |
| 38 | 状況 | 42 |
| 39 | 技術開発 | 41 |
| 40 | 低減 | 41 |
| 41 | 選択肢 | 40 |
| 42 | 観点 | 40 |
| 43 | 多様 | 40 |
| 44 | コスト | 39 |
| 45 | 安定的 | 38 |
| 46 | 様々 | 38 |
| 47 | 貢献 | 38 |
| 48 | 適切 | 37 |
| 49 | 連携 | 37 |
| 50 | 積極的 | 36 |
| 51 | 効率的 | 36 |
| 52 | 海外 | 35 |
| 53 | 供給 | 35 |
| 54 | 事業者 | 34 |
| 55 | 着実 | 34 |
| 56 | 電源 | 33 |
| 57 | 下 | 33 |
| 58 | エネルギー需給構造 | 32 |
| 59 | 2030年 | 31 |
| 60 | 実施 | 31 |
| 61 | 安全性 | 31 |
| 62 | 国際的 | 31 |
| 63 | 展開 | 30 |
| 64 | 協力 | 30 |
| 65 | 競争 | 29 |
| 66 | 化石燃料 | 28 |
| 67 | 石油 | 28 |
| 68 | 抑制 | 28 |
| 69 | 変化 | 28 |
| 70 | 効率化 | 28 |
| 71 | 熱 | 28 |
| 72 | 日本 | 27 |
| 73 | 資源 | 27 |
| 74 | 中心 | 27 |
| 75 | 増加 | 27 |
| 76 | リスク | 26 |
| 77 | 場合 | 26 |
| 78 | 更 | 26 |
| 79 | 東京電力福島 | 26 |
| 80 | 役割 | 25 |
| 81 | 安定供給 | 25 |
| 82 | 国内 | 25 |
| 83 | 電気 | 25 |
| 84 | 需要家 | 25 |
| 85 | 市場 | 24 |
| 86 | 投資 | 24 |
| 87 | 中長期的 | 24 |
| 88 | 普及 | 24 |
| 89 | 理解 | 24 |
| 90 | 現在 | 24 |
| 91 | 維持 | 24 |
| 92 | 確立 | 23 |
| 93 | 国民 | 23 |
| 94 | 挑戦 | 23 |
| 95 | 調整力 | 23 |
| 96 | エネルギー選択 | 23 |
| 97 | 具体的 | 23 |
| 98 | 環境 | 23 |
| 99 | 影響 | 23 |
| 100 | 温室効果ガス | 22 |
| 101 | 政府 | 22 |
| 102 | 加速 | 22 |
| 103 | 動き | 22 |
| 104 | 柔軟 | 22 |
| 105 | 安全 | 22 |
| 106 | 十分 | 22 |
| 107 | 技術革新 | 22 |
| 108 | 多様化 | 21 |
| 109 | 策定 | 21 |
| 110 | 分散型エネルギーシステム | 21 |
| 111 | 在り方 | 21 |
| 112 | 存在 | 21 |
| 113 | 廃炉 | 21 |
| 114 | 中国 | 21 |
| 115 | FIT制度 | 21 |
| 116 | 形 | 20 |
| 117 | 等 | 20 |
| 118 | 天然ガス | 20 |
| 119 | 需要 | 20 |
| 120 | 変動 | 20 |
| 121 | 産業 | 20 |
| 122 | 進展 | 20 |
| 123 | 人材 | 20 |
| 124 | 蓄電池 | 20 |
| 125 | 評価 | 19 |
| 126 | ガス | 19 |
| 127 | 総合的 | 19 |
| 128 | 将来 | 19 |
| 129 | 解決 | 19 |
| 130 | エネルギー政策 | 19 |
| 131 | 福島 | 19 |
| 132 | エネルギー需要 | 19 |
| 133 | アジア | 19 |
| 134 | LPガス | 18 |
| 135 | 石炭 | 18 |
| 136 | 現状 | 18 |
| 137 | 他 | 18 |
| 138 | 対策 | 18 |
| 139 | 始め | 18 |
| 140 | 米国 | 18 |
| 141 | 導入拡大 | 18 |
| 142 | 確実 | 18 |
| 143 | 改善 | 18 |
| 144 | エネルギー安全保障 | 18 |
| 145 | 世界的 | 18 |
| 146 | 不可欠 | 18 |
| 147 | 使用済燃料 | 18 |
| 148 | 支援 | 17 |
| 149 | 新興国 | 17 |
| 150 | 政策 | 17 |
| 151 | 発生 | 17 |
| 152 | 制度 | 17 |
| 153 | 依存 | 17 |
| 154 | 枠組み | 17 |
| 155 | 発展 | 17 |
| 156 | 一原子力発電所事故 | 17 |
| 157 | 研究開発 | 17 |
| 158 | 原子力発電所 | 16 |
| 159 | 2050年 | 16 |
| 160 | 電力システム改革 | 16 |
| 161 | 多く | 16 |
| 162 | 国際展開 | 16 |
| 163 | 省エネ法 | 16 |
| 164 | 仕組み | 16 |
| 165 | 石油製品 | 16 |
| 166 | エネルギーミックス | 16 |
| 167 | LNG | 16 |
| 168 | 円滑 | 15 |
| 169 | 発電 | 15 |
| 170 | 各国 | 15 |
| 171 | 高度化 | 15 |
| 172 | 既存 | 15 |
| 173 | エネルギー産業 | 15 |
| 174 | 供給構造 | 15 |
| 175 | 選択 | 15 |
| 176 | 充実 | 15 |
| 177 | 主体 | 15 |
| 178 | 他方 | 15 |
| 179 | 規模 | 15 |
| 180 | 調達 | 15 |
| 181 | 追求 | 15 |
| 182 | 社会 | 15 |
| 183 | 結果 | 14 |
| 184 | コージェネレーション | 14 |
| 185 | 創出 | 14 |
| 186 | 発電コスト | 14 |
| 187 | 強靱化 | 14 |
| 188 | 長期 | 14 |
| 189 | エネルギー分野 | 14 |
| 190 | 転換 | 14 |
| 191 | 分野 | 14 |
| 192 | 獲得 | 14 |
| 193 | 最大限 | 14 |
| 194 | インフラ | 14 |
| 195 | エネルギー供給 | 14 |
| 196 | 燃料 | 14 |
| 197 | 資源国 | 14 |
| 198 | 視点 | 14 |
| 199 | 低下 | 14 |
「再生可能エネルギー」が4位と上位にランクインしています。7位に「炭素化」がありますがこれは「低炭素化」で「低」と「炭素化」に分かれてしまったようです。「エネルギー転換」「エネルギー需給構造」などの言葉も入っています。
普通に形態素解析したときには2位になっていた「的」は「安定的」「積極的」「効率的」など複数の単語に含まれています。
前回記事の最後に普通に形態素解析した場合の単語出現回数を記載していますので、比較してみてください。
接頭詞の扱いや過剰な名詞化などの課題もありますが、前回よりも文書の特徴が分かるようになってきました。
つづく
参考:
資源エネルギー庁:エネルギー基本計画(案)
janome ドキュメント
け日記:Python janomeのanalyzerが便利
Janomeで形態素解析をやってみる。
エネルギー基本計画(案)の特徴を見てみる。その1 wordcloud
エネルギー基本計画(案)の特徴を見てみる。その2 名詞でwordcloud
janomeの形態素情報を保存する。
エネルギー基本計画(案)の特徴を見てみる。その3 単語の出現回数を数える