ラベル janome の投稿を表示しています。 すべての投稿を表示
ラベル janome の投稿を表示しています。 すべての投稿を表示

2018年9月1日土曜日

エネルギー基本計画の特徴を見てみる。その4 複合語を考慮してwordcloud(python,janome,自然言語処理)

前回までに、エネルギー基本計画から複数回出現する単語の組み合わせをgensim Phrasesで取り出し名詞とみなせるか判定した上で複合語・新語をjanomeのユーザー辞書に登録しました。

今回は、作成したユーザー辞書を使って複合語を考慮した上でwordcloudを作ってみます。

ちなみに、複合語を考慮しない場合はこのようになりました。



エネルギー基本計画(案)の特徴を見てみる。その2 名詞でwordcloudより。 名詞(代名詞、非自立名詞を除く)のみ、連語を考慮せず。

「エネルギー」が大きく表示されていますが、「必要」「利用」「活用」などの普通に使われそうな言葉が目立ち、エネルギー基本計画としての特徴があまり出ていません専門用語として複合語・新語を登録したユーザー辞書を使うことで、どう変化するでしょうか。

・インポートとデータ読み込み
from janome.tokenizer import Tokenizer

from wordcloud import WordCloud
import matplotlib.pyplot as plt 

text_file = open("enegy_plan.txt")
full_text = text_file.read()
full_text= full_text.replace("\n","")
出力(一部)
はじめに2011年3月の東日本大震災及び東京電力福島第一原子力発電所事故を受けて、政府は、2014年4月、2030年を念頭に、第4次エネルギー基本計画を策定し、原発依存度の低減、化石資源依存度の低減、再生可能エネルギーの拡大を打ち出した。第4次エネルギー基本計画の策定から4年、2030年の計画の見直しのみならず、パリ協定の発効を受けた2050年を見据えた対応、より長期には化石資源枯渇に備えた超長期の対応、変化するエネルギー情勢への対応など、今一度、我が国がそのエネルギー選択を構想すべき時期に来ている。

・ユーザー辞書を指定
tokenizer = Tokenizer('energywords_dic.csv', udic_enc='cp932')
tokens = tokenizer.tokenize(full_text) 

前回作成したユーザー辞書を指定します。

・形態素解析を行い、指定した品詞のみを取り出す。
word_list=[]
for token in tokens:
    word = token.surface
    partOfSpeech = token.part_of_speech.split(',')[0]
    partOfSpeech2 = token.part_of_speech.split(',')[1]
    
    if partOfSpeech == "名詞":
        if (partOfSpeech2 != "非自立") and (partOfSpeech2 != "代名詞") and (partOfSpeech2 != "数"):
            word_list.append(word)

words_wakati=" ".join(word_list)
words_wakati

出力(一部)
はじめ 年 3月 東日本大震災 東京電力 福島 原子力発電所 事故 政府 年 4月 年 念頭 次 エネルギー 基本 計画 策定 原発依存度 低減 化石資源 依存度 低減 再生可能エネルギー 拡大 次 エネルギー 基本 計画 策定 年 年 計画 見直し パリ協定 発効 年 対応 長期 化石資源 枯渇 長期 対応 変化 エネルギー情勢 対応 今 度 我が国 エネルギー 選択 構想 時期

形態素情報から名詞(非自立、代名詞、数を除く)のみを取り出しています。janomeを使った品詞での単語抽出についてはこちらをご覧ください。

・wordcloudの設定・表示
stop_words = []
fpath = "C:\Windows\Fonts\msgothic.ttc"

wordcloud = WordCloud(
    font_path=fpath,
    width=900, height=500, #default width=400, height=200
    background_color="white", #default=”black”
    stopwords=set(stop_words),
    max_words=500, #default=200
#    max_font_size=150, #default=None,height of the image
    min_font_size=4, #default=4
    collocations = False #default = True
).generate(words_wakati)

plt.figure(figsize=(15,12))
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

最大フォントを指定せず、連語を考慮せずで作成しています。wordcloudの設定についてはこちらをご覧ください。

出力

(クリックで少し大きく見られます)

「エネルギー」「技術」「開発」「事業」「取組」が大きく表示され、「再生可能エネルギー」「脱炭素化」「水素」「地域」も大きめです。よく見ると「エネルギー需給」「LPガス」「温室効果ガス」などもあります。

作成したユーザー辞書を使うことで、専門用語を考慮することができるようになり、前よりは特徴が見えてきました。

次回以降、「技術」「開発」「取組」などのこういう文書によく使われる単語を除いて、特定の文書での特徴を現す言葉のみの抽出をやってみようと思います。

参考:
資源エネルギー庁:第5次エネルギー基本計画
http://www.enecho.meti.go.jp/category/others/basic_plan/pdf/180703.pdf
Janomeドキュメント:ユーザー定義辞書を使う
http://mocobeta.github.io/janome/#id7
MeCab 単語の追加方法
http://taku910.github.io/mecab/dic.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
エネルギー基本計画(案)の特徴を見てみる。その1 wordcloud
https://eneprog.blogspot.com/2018/06/wordcloudpythonjanome.html
エネルギー基本計画(案)の特徴を見てみる。その2 名詞でwordcloud
https://eneprog.blogspot.com/2018/06/2-pythonjanomewordcloud.html

gensim Phrasesで新語・複合語を探す(python、自然言語処理、機械学習)
https://eneprog.blogspot.com/2018/07/gensim-phrasespython.html
エネルギー基本計画から新語・複合語を探す。その1
https://eneprog.blogspot.com/2018/07/1-pythongensimphrasesjanome.html
エネルギー基本計画から新語・複合語を探す。その2 複合語を判定する
https://eneprog.blogspot.com/2018/08/2-pythonjanome.html
Janomeでユーザー辞書を使う
https://eneprog.blogspot.com/2018/08/janomepython.html

2018年8月21日火曜日

Janomeのユーザー辞書を作る(python,自然言語処理,エネルギー基本計画)

前回の続きです。前回はエネルギー基本計画からgensim Phrasesを使って、複数回出現する単語の組み合わせを複合語候補として取り出し、名詞とみなせるかどうか判定しリストを作りました。

今回は、このリストを新語としてjanomeのユーザー辞書に登録します。 下記の記事を参考にしました。

Janomeドキュメント:ユーザー定義辞書を使う
http://mocobeta.github.io/janome/#id7
コード7区:ツイートからユーザ辞書(MeCab や Janome 用)をpython で作ってみる
http://ailaby.com/tweet_dict/


・インポートとデータの確認
from janome.tokenizer import Tokenizer
import pandas as pd

words_judge
複合語候補回数単語判定
0再生_可能_エネルギー171再生可能エネルギーTrue
1する_こと154することFalse
2。_\r\r\r\r\n135
3し_た128
4的_な118
5について_は91について
6事業_者78事業者True
7する_ため72するためFalse
8脱_炭素_化65脱炭素化True
9し_て65

・データ抽出
words_dic=words_judge[(words_judge["判定"]==True) & (words_judge["回数"] >= 6)]
words_dic

判定が"True"、回数が6以上のものを抽出。

複合語候補回数単語判定
0再生_可能_エネルギー171再生可能エネルギーTrue
6事業_者78事業者True
8脱_炭素_化65脱炭素化True
14技術_開発56技術開発True
15可能_性55可能性True
27安定_供給38安定供給True

このデータの"単語"列をユーザー辞書に登録します。janomeのユーザー辞書はMeCab 辞書と同じです。ユーザー辞書のフォーマットについては下記を参照ください。

MeCab 単語の追加方法
http://taku910.github.io/mecab/dic.html

ユーザー辞書はカンマ区切りCSVファイルで、「表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音」という形式です。

今回は、左文脈ID、右文脈IDを-1、コストを1000に、品詞、品詞細分類1を名詞、一般名詞に固定し、そのほかは"*"にします。

・ユーザー辞書のフォーマットを作る
words_dic["paramater"]="-1,-1,1000,名詞,一般,*,*,*,*,%s,*,*"

words_dic=pd.concat(
    [words_dic['単語'],words_dic['paramater']
     .str.split(',', expand=True)], axis=1)

words_dic[9]=words_dic["単語"]
words_dic 

フォーマットの表層形以外をカンマ区切りでparamater列に格納した後、カンマで列を分割、原形(列名"9")に"単語"列をコピーしています。

単語01234567891011
0再生可能エネルギー-1-11000名詞一般****再生可能エネルギー**
6事業者-1-11000名詞一般****事業者**
8脱炭素化-1-11000名詞一般****脱炭素化**
14技術開発-1-11000名詞一般****技術開発**
15可能性-1-11000名詞一般****可能性**

これでユーザー辞書のフォーマットが完成。

・ユーザー辞書をCSVで保存
words_dic.to_csv("energywords_dic.csv", sep=",",index=False,header=False,encoding='cp932') 

できたユーザー辞書をCSVで保存します。この時、列名、インデックスともにFalseとし、保存しないようにます。

・ユーザー辞書を使う
janomeでユーザー辞書を使ってみます。エネルギー基本計画より、下記の文章を分かち書きします。
電源構成は、特定の電源や燃料源への依存度が過度に高まらないようにしつつ、低廉で安定的なベースロード電源を国際的にも遜色のない水準で確保すること、安定供給に必要な予備力、調整力を堅持すること、環境への適合を図ることが重要であり、バランスのとれた電源構成の実現に注力していく必要がある。一方、東京電力福島第一原子力発電所事故後、電力需要に変化が見られるようになっている。こうした需要動向の変化を踏まえつつ、節電や、空調エネルギーのピークカットなどピーク対策の取組を進めることで電力の負荷平準化を図り、供給構造の効率化を進めていくことが必要である。
text="電源構成は、特定の電源や燃料源への依存度が過度に高まらないようにしつつ、低廉で安定的なベースロード電源を国際的にも遜色のない水準で確保すること、安定供給に必要な予備力、調整力を堅持すること、環境への適合を図ることが重要であり、バランスのとれた電源構成の実現に注力していく必要がある。一方、東京電力福島第一原子力発電所事故後、電力需要に変化が見られるようになっている。こうした需要動向の変化を踏まえつつ、節電や、空調エネルギーのピークカットなどピーク対策の取組を進めることで電力の負荷平準化を図り、供給構造の効率化を進めていくことが必要である。"

・ユーザー辞書なし
tokenizer = Tokenizer()

words=[]
tokens = tokenizer.tokenize(text)
for word in tokens:
    words.append(word.surface)
    
print(" ".join(words))
電源 構成 は 、 特定 の 電源 や 燃料 源 へ の 依存 度 が 過度 に 高まら ない よう に し つつ 、 低廉 で 安定 的 な ベース ロード 電源 を 国際 的 に も 遜色 の ない 水準 で 確保 する こと 、 安定 供給 に 必要 な 予備 力 、 調整 力 を 堅持 する こと 、 環境 へ の 適合 を 図る こと が 重要 で あり 、 バランス の とれ た 電源 構成 の 実現 に 注力 し て いく 必要 が ある 。 一方 、 東京電力 福島 第 一 原子力 発電 所 事故 後 、 電力 需要 に 変化 が 見 られる よう に なっ て いる 。 こうした 需要 動向 の 変化 を 踏まえ つつ 、 節電 や 、 空調 エネルギー の ピーク カット など ピーク 対策 の 取組 を 進める こと で 電力 の 負荷 平準 化 を 図り 、 供給 構造 の 効率 化 を 進め て いく こと が 必要 で ある 。

・ユーザー辞書あり
tokenizer = Tokenizer('energywords_dic.csv', udic_enc='cp932')


words=[]
tokens = tokenizer.tokenize(text)
for word in tokens:
    words.append(word.surface)
    
print(" ".join(words))
電源構成 は 、 特定 の 電源 や 燃料 源 へ の 依存度 が 過度 に 高まら ない よう に し つつ 、 低廉 で 安定的 な ベースロード電源 を 国際的 に も 遜色 の ない 水準 で 確保 する こと 、 安定供給 に 必要 な 予備 力 、 調整力 を 堅持 する こと 、 環境 へ の 適合 を 図る こと が 重要 で あり 、 バランス の とれ た 電源構成 の 実現 に 注力 し て いく 必要 が ある 。 一方 、 東京電力 福島 第 一 原子力発電所 事故 後 、 電力 需要 に 変化 が 見 られる よう に なっ て いる 。 こうした 需要動向 の 変化 を 踏まえ つつ 、 節電 や 、 空調 エネルギー の ピーク カット など ピーク 対策 の 取組 を 進める こと で 電力 の 負荷 平準 化 を 図り 、 供給構造 の 効率化 を 進め て いく こと が 必要 で ある 。

ユーザー辞書の設定は、Tokenizerの初期化時にユーザー辞書のCSVファイル名とエンコードを指定するだけ。

ユーザー辞書ありでは、電源構成、依存度、安定的、ベースロード電源、国際的、安定供給、調整力、原子力発電所、需要動向、供給構造、効率化が一つの単語となりました。

一方、予備力、電力需要、ピークカットは「予備 力」「電力 需要」「ピーク カット」と分かれたままです。これはエネルギー基本計画で6回以上出現したものを複合語候補として抽出したためです。複数の資料から辞書に載っていない組み合わせを抽出するようにすれば、新語の検出精度が上がりそうです。

参考:
資源エネルギー庁:第5次エネルギー基本計画
http://www.enecho.meti.go.jp/category/others/basic_plan/pdf/180703.pdf
Janomeドキュメント:ユーザー定義辞書を使う
http://mocobeta.github.io/janome/#id7
MeCab 単語の追加方法
http://taku910.github.io/mecab/dic.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
エネルギー基本計画から新語・複合語を探す。その2 複合語を判定する(python,自然言語処理,janome)
https://eneprog.blogspot.com/2018/08/2-pythonjanome.html

2018年8月7日火曜日

エネルギー基本計画から新語・複合語を探す。その2 複合語を判定する(python,自然言語処理,janome)

前回、gensim phrasesを使って、エネルギー基本計画の文章から複数回出現した単語の組み合わせを複合語候補として取り出しました。

今回はここから複合語(名詞)と見なせるかどうか判定し、新語(エネルギー用語)として抽出します。下記のブログを参考にしました。

コード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。_\n135
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\n135
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再生可能エネルギーTrue171
215事業者True78
503脱炭素化True77
384技術開発True56
291可能性True55
162エネルギー源True45
480積極的True41
348安定供給True38
581需要家True38
266効率的True37
351安定的True36
474研究開発True35
172エネルギー需給構造True35
366廃炉True34
269化石燃料True32
338天然ガスTrue31
345安全性True31
666LPガスTrue29
385技術革新True28
313国際的True28
228使用済燃料True28
395新興国True27
153エネルギー供給True26
447燃料電池True26
264効率化True25
440温室効果ガスTrue25
208中長期的True24
524調整力True24
257分散型エネルギーシステムTrue24
169エネルギー選択True23
665FIT制度True23
160エネルギー消費True22
573電力システム改革True22
332多様化True22
173エネルギー需要True22
359導入拡大True21
336大規模True21
484競争力True21
471石油製品True21
187パリ協定True21
165エネルギー転換True20
157エネルギー安全保障True20
177サプライチェーンTrue20
225低炭素化True20
159エネルギー政策True20
499総合的True20
430活性化True19
595高度化True19
389排出量True19
244具体的True19
383戦略的True18
255分散型True18
401最終処分True17
152エネルギーミックスTrue17
155エネルギー分野True17
164エネルギー産業True17
230供給構造True17
327基本計画True16
278原子力発電所True16
369強靱化True16
465省エネ法True16
567長期的True16
592高効率True15
367建築物True15
508自由化True15
456発電コストTrue15
176コスト低減True14
265効率性True14
224低炭素True14
445災害時True14
185バイオマスTrue14
270化石資源True14
528資源国True14
495継続的True14
492経済性True14
324地球温暖化対策True14
505脱炭素化エネルギーシステムTrue14
312国際展開True14
203世界全体True13
243具体化True13
569関係者True13
241先進国True13
386抜本的True13
388排出削減True13
274原子力事業者True13
263効果的True13
150エネルギーシステムTrue13
444火力発電True13
449環境整備True13
171エネルギー需給True12
232依存度True12
158エネルギー情勢True12
510自給率True12
397方向性True12
229供給体制True12
586風力発電True12
182トップランナー制度True12
408東日本大震災True12
337大量導入True12
292各エネルギー源True12
566鉱物資源True11
247再処理True11
170エネルギー関連True11
396新規参入True11
398日米True11
493経済成長True11
470石油産業True11
393放射性廃棄物True11
582需要量True11
523課題解決True11
463相手国True11
387持続可能True11
457発電効率True11
267包括的True10
557運輸部門True10
565金属鉱物True10
277原子力発電True10
321地熱発電True10
308国民生活True10
574電気料金True10
319地政学的リスクTrue10
482立地地域True10
441温室効果ガス排出True10
509自立化True10
591高レベル放射性廃棄物True10
202不確実性True10
585顕在化True10
530資源開発True10
576電源構成True10
489系統制約True10
584革新的True10
469石油化学True9
473石炭火力発電True9
333多角化True9
459発電設備True9
496緊急時True9
506自主開発True9
450環境負荷True9
405本格化True9
350安定性True9
402有効利用True9
403有効活用True9
349安定化True9
339太陽光発電True9
411柔軟性True9
415核燃料サイクルTrue9
531賦存True9
306国家備蓄True9
189ベースロード電源True9
214事業環境True9
273危機時True9
259利活用True9
564野心的True9
572電力システムTrue9
204世界的True9
498総合エネルギー企業True9
309国民負担True9
578需給調整True9
234信頼性True9
311国際協力True9
223低コスト化True9
222低コストTrue8
211主要国True8
526貯蔵施設True8
210主力電源化True8
412核セキュリティTrue8
423気候変動True8
316国際連系線True8
494経済的True8
479科学的レビューメカニズムTrue8
476社会的True8
154エネルギー供給構造True8
468石油コンビナートTrue8
462相対的True8
453産油国True8
180デジタル化True8
448環境変化True8
514製油所True8
437消費者True8
191ロードマップTrue8
392支援策True8
251再稼働True8
342委員会True8
536送配電ネットワークTrue8
379情勢変化True8
279原子力規制委員会True8
538送電網True8
315国際競争力True8
534輸送システムTrue8
483立地自治体True7
179システム改革True7
186バイオ燃料True7
515複線シナリオTrue7
570関係自治体True7
478科学的True7
464省エネルギー対策True7
161エネルギー消費効率True7
174ガスシステム改革True7
537送配電網True7
254分散化True7
501脆弱性True7
314国際社会True7
380情報共有True7
356実用化True7
220人材育成True7
248再構築True7
231供給網True7
246円滑化True7
260制度改革True7
593高効率化True7
364廃棄物True7
357家庭用True7
305国内需要True7
535送配電True7
424水素ステーションTrue7
365廃止措置True7
542連系True7
568関係省庁True6
579需要サイドTrue6
527貯蔵能力True6
529資源外交True6
571関係閣僚会議True6
580需要動向True6
540途上国True6
664CO2削減True6
563重要性True6
507自家消費True6
221企業群True6
184ネットワークコストTrue6
200不安定化True6
207中下流True6
212予見可能性True6
235信頼関係True6
239元売True6
253出力変動True6
323地球温暖化問題True6
276原子力損害賠償True6
280原油価格True6
282原発依存度True6
283収益力True6
294合理的True6
297商用化True6
178シェール革命True6
156エネルギー協力関係True6
151エネルギーマネジメントTrue6
149インフラ輸出True6
307国民各層True6
358将来世代True6
455用燃料True6
418機動的True6
368式洋上True6
420次世代自動車True6
422民間企業True6
362年度比True6
427汚染水対策True6
446熱電True6
451産業活動True6
360小売全面自由化True6
452産業界True6
381情報提供True6
400最優先True6
458発電所True6
490系統増強True6
346安全性向上True6

計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
//SyntaxHighlighter CDNより https://cdnjs.com/libraries/SyntaxHighlighter // 対応言語