今回はここから複合語(名詞)と見なせるかどうか判定し、新語(エネルギー用語)として抽出します。下記のブログを参考にしました。
コード7区:ツイートからユーザ辞書(MeCab や Janome 用)をpython で作ってみる
http://ailaby.com/tweet_dict/
・インポート、janome Tokenizer初期化
from janome.tokenizer import Tokenizer import pandas as pd #from tqdm import tqdm import re tokenizer = Tokenizer()
・データ確認(一部)
words_df
| 複合語候補 | 回数 | |
|---|---|---|
| 0 | 再生_可能_エネルギー | 171 |
| 1 | する_こと | 154 |
| 2 | 。_\n | 135 |
| 3 | し_た | 128 |
| 4 | 的_な | 118 |
| 5 | について_は | 91 |
| 6 | 事業_者 | 78 |
| 7 | する_ため | 72 |
| 8 | 脱_炭素_化 | 65 |
| 9 | し_て | 65 |
| 10 | し_て_いく | 65 |
助詞や句読点などが含まれているものがあります。これらを下記のように判定し、名詞と見なせるものを抽出しました。
- 名詞+名詞=名詞
- 接頭詞+名詞=名詞
- 最後に助詞、助動詞がつくものはこれらを削除して判定
- 空白文字が含まれているものは除外
- 最初に「年」または「年度」とつくものは除外
- 数や助数詞が含まれているものは除外
最後に助詞、助動詞がつくものとは、「安定_的_な」のように、助詞、助動詞も含めて複合語候補となっているものです。この場合は最後の「な」を削除し「安定_的」で判定に回します。
その際、複合語ではなく1単語となってしまった場合、判定せずに空白を返すことにします(「重要_な」で「な」を削除すると「重要」の1単語となり複合語ではなくなる)。
・判定関数
def judge(word):
word_list=word.split("_")
word=word.replace("_","")
tokens = tokenizer.tokenize(word)
if len(tokens)==1 or re.search("\s+", word): #空白文字が含まれていたら除外
return pd.Series(["",""])
if word_list[0]=="年" or word_list[0]=="年度": #最初が「年」または「年度」であれば除外
return pd.Series(["",""])
part0 = tokens[-1].part_of_speech.split(',')[0]
if part0 == "助詞" or part0=="助動詞": #最後が助詞または助動詞であればその単語を削除
del tokens[-1]
del word_list[-1]
word="".join(word_list)
if len(tokens)==1:
return pd.Series([word,""])
for num, token in enumerate(tokens):
surFace = token.surface
part0 = token.part_of_speech.split(',')[0]
part1 = token.part_of_speech.split(',')[1]
part2 = token.part_of_speech.split(',')[2]
reading = token.reading
baseForm = token.base_form
inflForm = token.infl_form
if num==0:
if part0 ==u"接頭詞": #最初が接頭詞であれば、次の単語へ
continue
if part0 != u'名詞':
return pd.Series([word,False])
elif part0 =="名詞" and (part1 == u'数' or part2=="助数詞"): #数、助数詞が含まれていれば除外
return pd.Series([word,False])
else:
continue
return pd.Series([word,True])
試行錯誤の結果こうなりました。戻り値はpandasのSeriesで、単語と判定結果(True または False)を返します。
・データフレームの列に関数適用
words_df=(
pd.concat([words_df, words_df["複合語候補"].apply( judge )], axis=1 )
.rename(columns={0:"単語",1:"判定"}))
applyで"複合語候補"列にjudge関数を適用し、戻り値2つをpd.concatで新しい列に格納します。複数の戻り値でそれぞれ新しい列を作る方法が分からず苦労しました。。。
・出力(一部)
| 複合語候補 | 回数 | 単語 | 判定 | |
|---|---|---|---|---|
| 0 | 再生_可能_エネルギー | 171 | 再生可能エネルギー | True |
| 1 | する_こと | 154 | すること | False |
| 2 | 。_\r\r\r\r\n | 135 | ||
| 3 | し_た | 128 | し | |
| 4 | 的_な | 118 | 的 | |
| 5 | について_は | 91 | について | |
| 6 | 事業_者 | 78 | 事業者 | True |
| 7 | する_ため | 72 | するため | False |
| 8 | 脱_炭素_化 | 65 | 脱炭素化 | True |
| 9 | し_て | 65 | し |
「再生可能エネルギー」「事業者」「脱炭素化」はTrue、「すること」「するため」はFalseと判定されました。「して」「した」など最後の助詞、助動詞を取り除くと1単語になるものは空白としています。
・重複除去
words_judge=(words_df.groupby(["単語","判定"])["回数"].sum()
.reset_index()
.rename(columns={0:"回数"})
.sort_values(by="回数", ascending=False))
複合語候補、最後の助詞、助動詞を取り除く処理により、重複が出てくるためこれをgroupbyで取り除き、sum()で回数を足し合わせました。
・抽出
words_judge[(words_judge["判定"]==True) & (words_judge["回数"] >= 6)]
判定がTrue、出現回数が6回以上のものを抽出します。これらを新語・複合語とします。
・出力
| 単語 | 判定 | 回数 | |
|---|---|---|---|
| 250 | 再生可能エネルギー | True | 171 |
| 215 | 事業者 | True | 78 |
| 503 | 脱炭素化 | True | 77 |
| 384 | 技術開発 | True | 56 |
| 291 | 可能性 | True | 55 |
| 162 | エネルギー源 | True | 45 |
| 480 | 積極的 | True | 41 |
| 348 | 安定供給 | True | 38 |
| 581 | 需要家 | True | 38 |
| 266 | 効率的 | True | 37 |
| 351 | 安定的 | True | 36 |
| 474 | 研究開発 | True | 35 |
| 172 | エネルギー需給構造 | True | 35 |
| 366 | 廃炉 | True | 34 |
| 269 | 化石燃料 | True | 32 |
| 338 | 天然ガス | True | 31 |
| 345 | 安全性 | True | 31 |
| 666 | LPガス | True | 29 |
| 385 | 技術革新 | True | 28 |
| 313 | 国際的 | True | 28 |
| 228 | 使用済燃料 | True | 28 |
| 395 | 新興国 | True | 27 |
| 153 | エネルギー供給 | True | 26 |
| 447 | 燃料電池 | True | 26 |
| 264 | 効率化 | True | 25 |
| 440 | 温室効果ガス | True | 25 |
| 208 | 中長期的 | True | 24 |
| 524 | 調整力 | True | 24 |
| 257 | 分散型エネルギーシステム | True | 24 |
| 169 | エネルギー選択 | True | 23 |
| 665 | FIT制度 | True | 23 |
| 160 | エネルギー消費 | True | 22 |
| 573 | 電力システム改革 | True | 22 |
| 332 | 多様化 | True | 22 |
| 173 | エネルギー需要 | True | 22 |
| 359 | 導入拡大 | True | 21 |
| 336 | 大規模 | True | 21 |
| 484 | 競争力 | True | 21 |
| 471 | 石油製品 | True | 21 |
| 187 | パリ協定 | True | 21 |
| 165 | エネルギー転換 | True | 20 |
| 157 | エネルギー安全保障 | True | 20 |
| 177 | サプライチェーン | True | 20 |
| 225 | 低炭素化 | True | 20 |
| 159 | エネルギー政策 | True | 20 |
| 499 | 総合的 | True | 20 |
| 430 | 活性化 | True | 19 |
| 595 | 高度化 | True | 19 |
| 389 | 排出量 | True | 19 |
| 244 | 具体的 | True | 19 |
| 383 | 戦略的 | True | 18 |
| 255 | 分散型 | True | 18 |
| 401 | 最終処分 | True | 17 |
| 152 | エネルギーミックス | True | 17 |
| 155 | エネルギー分野 | True | 17 |
| 164 | エネルギー産業 | True | 17 |
| 230 | 供給構造 | True | 17 |
| 327 | 基本計画 | True | 16 |
| 278 | 原子力発電所 | True | 16 |
| 369 | 強靱化 | True | 16 |
| 465 | 省エネ法 | True | 16 |
| 567 | 長期的 | True | 16 |
| 592 | 高効率 | True | 15 |
| 367 | 建築物 | True | 15 |
| 508 | 自由化 | True | 15 |
| 456 | 発電コスト | True | 15 |
| 176 | コスト低減 | True | 14 |
| 265 | 効率性 | True | 14 |
| 224 | 低炭素 | True | 14 |
| 445 | 災害時 | True | 14 |
| 185 | バイオマス | True | 14 |
| 270 | 化石資源 | True | 14 |
| 528 | 資源国 | True | 14 |
| 495 | 継続的 | True | 14 |
| 492 | 経済性 | True | 14 |
| 324 | 地球温暖化対策 | True | 14 |
| 505 | 脱炭素化エネルギーシステム | True | 14 |
| 312 | 国際展開 | True | 14 |
| 203 | 世界全体 | True | 13 |
| 243 | 具体化 | True | 13 |
| 569 | 関係者 | True | 13 |
| 241 | 先進国 | True | 13 |
| 386 | 抜本的 | True | 13 |
| 388 | 排出削減 | True | 13 |
| 274 | 原子力事業者 | True | 13 |
| 263 | 効果的 | True | 13 |
| 150 | エネルギーシステム | True | 13 |
| 444 | 火力発電 | True | 13 |
| 449 | 環境整備 | True | 13 |
| 171 | エネルギー需給 | True | 12 |
| 232 | 依存度 | True | 12 |
| 158 | エネルギー情勢 | True | 12 |
| 510 | 自給率 | True | 12 |
| 397 | 方向性 | True | 12 |
| 229 | 供給体制 | True | 12 |
| 586 | 風力発電 | True | 12 |
| 182 | トップランナー制度 | True | 12 |
| 408 | 東日本大震災 | True | 12 |
| 337 | 大量導入 | True | 12 |
| 292 | 各エネルギー源 | True | 12 |
| 566 | 鉱物資源 | True | 11 |
| 247 | 再処理 | True | 11 |
| 170 | エネルギー関連 | True | 11 |
| 396 | 新規参入 | True | 11 |
| 398 | 日米 | True | 11 |
| 493 | 経済成長 | True | 11 |
| 470 | 石油産業 | True | 11 |
| 393 | 放射性廃棄物 | True | 11 |
| 582 | 需要量 | True | 11 |
| 523 | 課題解決 | True | 11 |
| 463 | 相手国 | True | 11 |
| 387 | 持続可能 | True | 11 |
| 457 | 発電効率 | True | 11 |
| 267 | 包括的 | True | 10 |
| 557 | 運輸部門 | True | 10 |
| 565 | 金属鉱物 | True | 10 |
| 277 | 原子力発電 | True | 10 |
| 321 | 地熱発電 | True | 10 |
| 308 | 国民生活 | True | 10 |
| 574 | 電気料金 | True | 10 |
| 319 | 地政学的リスク | True | 10 |
| 482 | 立地地域 | True | 10 |
| 441 | 温室効果ガス排出 | True | 10 |
| 509 | 自立化 | True | 10 |
| 591 | 高レベル放射性廃棄物 | True | 10 |
| 202 | 不確実性 | True | 10 |
| 585 | 顕在化 | True | 10 |
| 530 | 資源開発 | True | 10 |
| 576 | 電源構成 | True | 10 |
| 489 | 系統制約 | True | 10 |
| 584 | 革新的 | True | 10 |
| 469 | 石油化学 | True | 9 |
| 473 | 石炭火力発電 | True | 9 |
| 333 | 多角化 | True | 9 |
| 459 | 発電設備 | True | 9 |
| 496 | 緊急時 | True | 9 |
| 506 | 自主開発 | True | 9 |
| 450 | 環境負荷 | True | 9 |
| 405 | 本格化 | True | 9 |
| 350 | 安定性 | True | 9 |
| 402 | 有効利用 | True | 9 |
| 403 | 有効活用 | True | 9 |
| 349 | 安定化 | True | 9 |
| 339 | 太陽光発電 | True | 9 |
| 411 | 柔軟性 | True | 9 |
| 415 | 核燃料サイクル | True | 9 |
| 531 | 賦存 | True | 9 |
| 306 | 国家備蓄 | True | 9 |
| 189 | ベースロード電源 | True | 9 |
| 214 | 事業環境 | True | 9 |
| 273 | 危機時 | True | 9 |
| 259 | 利活用 | True | 9 |
| 564 | 野心的 | True | 9 |
| 572 | 電力システム | True | 9 |
| 204 | 世界的 | True | 9 |
| 498 | 総合エネルギー企業 | True | 9 |
| 309 | 国民負担 | True | 9 |
| 578 | 需給調整 | True | 9 |
| 234 | 信頼性 | True | 9 |
| 311 | 国際協力 | True | 9 |
| 223 | 低コスト化 | True | 9 |
| 222 | 低コスト | True | 8 |
| 211 | 主要国 | True | 8 |
| 526 | 貯蔵施設 | True | 8 |
| 210 | 主力電源化 | True | 8 |
| 412 | 核セキュリティ | True | 8 |
| 423 | 気候変動 | True | 8 |
| 316 | 国際連系線 | True | 8 |
| 494 | 経済的 | True | 8 |
| 479 | 科学的レビューメカニズム | True | 8 |
| 476 | 社会的 | True | 8 |
| 154 | エネルギー供給構造 | True | 8 |
| 468 | 石油コンビナート | True | 8 |
| 462 | 相対的 | True | 8 |
| 453 | 産油国 | True | 8 |
| 180 | デジタル化 | True | 8 |
| 448 | 環境変化 | True | 8 |
| 514 | 製油所 | True | 8 |
| 437 | 消費者 | True | 8 |
| 191 | ロードマップ | True | 8 |
| 392 | 支援策 | True | 8 |
| 251 | 再稼働 | True | 8 |
| 342 | 委員会 | True | 8 |
| 536 | 送配電ネットワーク | True | 8 |
| 379 | 情勢変化 | True | 8 |
| 279 | 原子力規制委員会 | True | 8 |
| 538 | 送電網 | True | 8 |
| 315 | 国際競争力 | True | 8 |
| 534 | 輸送システム | True | 8 |
| 483 | 立地自治体 | True | 7 |
| 179 | システム改革 | True | 7 |
| 186 | バイオ燃料 | True | 7 |
| 515 | 複線シナリオ | True | 7 |
| 570 | 関係自治体 | True | 7 |
| 478 | 科学的 | True | 7 |
| 464 | 省エネルギー対策 | True | 7 |
| 161 | エネルギー消費効率 | True | 7 |
| 174 | ガスシステム改革 | True | 7 |
| 537 | 送配電網 | True | 7 |
| 254 | 分散化 | True | 7 |
| 501 | 脆弱性 | True | 7 |
| 314 | 国際社会 | True | 7 |
| 380 | 情報共有 | True | 7 |
| 356 | 実用化 | True | 7 |
| 220 | 人材育成 | True | 7 |
| 248 | 再構築 | True | 7 |
| 231 | 供給網 | True | 7 |
| 246 | 円滑化 | True | 7 |
| 260 | 制度改革 | True | 7 |
| 593 | 高効率化 | True | 7 |
| 364 | 廃棄物 | True | 7 |
| 357 | 家庭用 | True | 7 |
| 305 | 国内需要 | True | 7 |
| 535 | 送配電 | True | 7 |
| 424 | 水素ステーション | True | 7 |
| 365 | 廃止措置 | True | 7 |
| 542 | 連系 | True | 7 |
| 568 | 関係省庁 | True | 6 |
| 579 | 需要サイド | True | 6 |
| 527 | 貯蔵能力 | True | 6 |
| 529 | 資源外交 | True | 6 |
| 571 | 関係閣僚会議 | True | 6 |
| 580 | 需要動向 | True | 6 |
| 540 | 途上国 | True | 6 |
| 664 | CO2削減 | True | 6 |
| 563 | 重要性 | True | 6 |
| 507 | 自家消費 | True | 6 |
| 221 | 企業群 | True | 6 |
| 184 | ネットワークコスト | True | 6 |
| 200 | 不安定化 | True | 6 |
| 207 | 中下流 | True | 6 |
| 212 | 予見可能性 | True | 6 |
| 235 | 信頼関係 | True | 6 |
| 239 | 元売 | True | 6 |
| 253 | 出力変動 | True | 6 |
| 323 | 地球温暖化問題 | True | 6 |
| 276 | 原子力損害賠償 | True | 6 |
| 280 | 原油価格 | True | 6 |
| 282 | 原発依存度 | True | 6 |
| 283 | 収益力 | True | 6 |
| 294 | 合理的 | True | 6 |
| 297 | 商用化 | True | 6 |
| 178 | シェール革命 | True | 6 |
| 156 | エネルギー協力関係 | True | 6 |
| 151 | エネルギーマネジメント | True | 6 |
| 149 | インフラ輸出 | True | 6 |
| 307 | 国民各層 | True | 6 |
| 358 | 将来世代 | True | 6 |
| 455 | 用燃料 | True | 6 |
| 418 | 機動的 | True | 6 |
| 368 | 式洋上 | True | 6 |
| 420 | 次世代自動車 | True | 6 |
| 422 | 民間企業 | True | 6 |
| 362 | 年度比 | True | 6 |
| 427 | 汚染水対策 | True | 6 |
| 446 | 熱電 | True | 6 |
| 451 | 産業活動 | True | 6 |
| 360 | 小売全面自由化 | True | 6 |
| 452 | 産業界 | True | 6 |
| 381 | 情報提供 | True | 6 |
| 400 | 最優先 | True | 6 |
| 458 | 発電所 | True | 6 |
| 490 | 系統増強 | True | 6 |
| 346 | 安全性向上 | True | 6 |
計263語が複合語として抽出されました。
積極的、国際的など一般的な言葉も含まれていますが、再生可能エネルギー、脱炭素化、FIT制度、エネルギー安全保障、シェール革命、自家消費などエネルギー用語(新語?)と言えそうな言葉が多く見つかりました。
参考:
資源エネルギー庁:第5次エネルギー基本計画 http://www.enecho.meti.go.jp/category/others/basic_plan/pdf/180703.pdf
gensim Phrase
https://radimrehurek.com/gensim/models/phrases.html
gensim Phrase
https://radimrehurek.com/gensim/models/phrases.html
コード7区:gensim の Phrases の使い方。頻出する単語ペアを検出-python
http://ailaby.com/phrases/
コード7区:ツイートからユーザ辞書(MeCab や Janome 用)をpython で作ってみる http://ailaby.com/tweet_dict/
Janomeで形態素解析をやってみる。
http://eneprog.blogspot.com/2018/06/janomepython.html
janome Analayzerで複合語(複合名詞)を考慮して形態素解析を行う。
http://eneprog.blogspot.com/2018/07/janome-analayzerpython.html
gensim Phrasesで新語・複合語を探す(python、自然言語処理、機械学習)
https://eneprog.blogspot.com/2018/07/gensim-phrasespython.html
エネルギー基本計画から新語・複合語を探す。その1
https://eneprog.blogspot.com/2018/07/1-pythongensimphrasesjanome.html