LoginSignup
0
0

今日の作業記録 python error(言語処理100本ノック:37)未解決

Last updated at Posted at 2019-01-23

言語処理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.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0