言語処理100本ノック 2015
37. 頻度上位10語
http://www.cl.ecei.tohoku.ac.jp/nlp100/
「出現頻度が高い10語とその出現頻度をグラフ(例えば棒グラフなど)で表示せよ.」
素人の言語処理100本ノック:37
https://qiita.com/segavvy/items/72863888e51fabd79295
Traceback (most recent call last):
File "./p37.py", line 61, in <module>
align='center'
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2764, in bar
ax = gca()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 969, in gca
return gcf().gca(**kwargs)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 586, in gcf
return figure()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 533, in figure
**kwargs)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 161, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 167, in new_figure_manager_given_figure
canvas = cls.FigureCanvas(figure)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 24, in __init__
super(FigureCanvasQTAgg, self).__init__(figure=figure)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 234, in __init__
_create_qApp()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 125, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
ソースは下記(コマンドとして実行したく1行目追記)
#!/usr/bin/env python
# coding: utf-8
import MeCab
from collections import Counter
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
fname = 'neko.txt'
fname_parsed = 'neko.txt.mecab'
def parse_neko():
with open(fname) as data_file, \
open(fname_parsed, mode='w') as out_file:
mecab = MeCab.Tagger()
out_file.write(mecab.parse(data_file.read()))
def neco_lines():
with open(fname_parsed) as file_parsed:
morphemes = []
for line in file_parsed:
cols = line.split('\t')
if(len(cols) < 2):
#raise StopIteration
break
res_cols = cols[1].split(',')
morpheme = {
'surface': cols[0],
'base': res_cols[6],
'pos': res_cols[0],
'pos1': res_cols[1],
}
morphemes.append(morpheme)
if res_cols[1] == '句点':
yield morphemes
morphemes = []
parse_neko()
word_counter = Counter()
for line in neco_lines():
word_counter.update([morpheme['surface'] for morpheme in line])
size = 10
list_word = word_counter.most_common(size)
print(list_word)
list_zipped = list(zip(*list_word))
words = list_zipped[0]
counts = list_zipped[1]
fp = FontProperties(fname='/Users/administrator/Library/Fonts/azuki.ttf')
plt.bar(
range(0, size),
counts,
align='center'
)
plt.xticks(
range(0, size),
words,
fontproperties=fp
)
plt.xlim(
xmin=-1, xmax=size
)
plt.title(
'37. 頻度上位10語',
fontproperties=fp
)
plt.xlabel(
'出現頻度が高い10語',
fontproperties=fp
)
plt.ylabel(
'出現頻度',
fontproperties=fp
)
plt.grid(axis='y')
plt.show()
38, 39も同様。
# ./p38.py
Traceback (most recent call last):
File "./p38.py", line 56, in <module>
range=(1, 20))
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 3122, in hist
ax = gca()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 969, in gca
return gcf().gca(**kwargs)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 586, in gcf
return figure()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 533, in figure
**kwargs)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 161, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 167, in new_figure_manager_given_figure
canvas = cls.FigureCanvas(figure)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 24, in __init__
super(FigureCanvasQTAgg, self).__init__(figure=figure)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 234, in __init__
_create_qApp()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 125, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
# ./p39.py
Traceback (most recent call last):
File "./p39.py", line 54, in <module>
plt.scatter(range(1, len(counts) + 1), counts)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 3461, in scatter
ax = gca()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 969, in gca
return gcf().gca(**kwargs)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 586, in gcf
return figure()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 533, in figure
**kwargs)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 161, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 167, in new_figure_manager_given_figure
canvas = cls.FigureCanvas(figure)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 24, in __init__
super(FigureCanvasQTAgg, self).__init__(figure=figure)
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 234, in __init__
_create_qApp()
File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 125, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.