prettytable을 사용하여 간단한 테이블 만들기

prettyprint로 테이블 만들기



자세한 내용은 여기 : htps : // py 피. py 응. 오 rg / py 피 / P 뻬 ty b
다음을 pip으로 설치했습니다.
list의 각 요소의 길이가 흩어져 출력해 보아도 보기 어려울 때와 같이 편리합니다.
이번 코드 : htps : // 기주 b. 코 m/코다이라토모리/쿠이타/bぉb/마s테 r/모즈ぇ/p렙typep t/마케_타bぇ. py

pip.
$ pip search prettytable
prettytable-extras     - An extension to the excellent prettytable Python library

실제로 만들어 보자



이번에는 형태소 해석을 해준다 mecabmecab은 문장을 넣으면 형태소 해석 결과를 문자열로 반환합니다.
여기도 쉽게 pip로 설치할 수 있습니다.

mecab_test.
$ python
Python 3.5.0
>>> import MeCab
>>> MeCab.Tagger().parse('体は剣で出来ている')
'体\t名詞,一般,*,*,*,*,体,カラダ,カラダ\nは\t助詞,係助詞,*,*,*,*,は,ハ,ワ\n剣\t名詞,一般,*,*,*,*,剣,ケン,ケン\nで\t助詞,格助詞,一般,*,*,*,で,デ,デ\n出来\t動詞,自立,*,*,一段,連用形,出来る,デキ,デキ\nて\t助詞,接続助詞,*,*,*,*,て,テ,テ\nいる\t動詞,非自立,*,*,一段,基本形,いる,イル,イル\nEOS\n'
>>> print(MeCab.Tagger().parse('体は剣で出来ている') )
体 名詞,一般,*,*,*,*,体,カラダ,カラダ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
剣 名詞,一般,*,*,*,*,剣,ケン,ケン
で 助詞,格助詞,一般,*,*,*,で,デ,デ
出来  動詞,自立,*,*,一段,連用形,出来る,デキ,デキ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
いる  動詞,非自立,*,*,一段,基本形,いる,イル,イル
EOS


이런 느낌으로 출력됩니다만, 단지 프린트한 것만으로는, 무언가 뒤쪽이 갖추어지지 않아서 보기 어렵다
그래서 prettytable 를 사용하여 이것을 쉽게 보기 쉽게 하고 싶습니다.

make_prettytable.py
import MeCab
import prettytable

def make_prettytable(others, header=[]):
    if not header: header = range(len(list(others)[0]) )
    if len(header) != len(others[0]):
        print('incorrect length!')
        return 
    table = prettytable.PrettyTable(header)
    for other in others: table.add_row(other)
    return table

def make_mecab_info_table(sentence, output_info=[], \
        mecab_parser=MeCab.Tagger.parse):
    others = list(map(lambda x: x.split(','), \
        mecab_parser(sentence).replace('\t', ',').split('\n') ) )[:-2]
    return make_prettytable(others, output_info)


if __name__ == '__main__':
    mecab_output = '表層形,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音'
    parser = MeCab.Tagger().parse
    header = mecab_output.split(',')
    print(make_mecab_info_table(input(), header, parser) )

출력 예





해설



이런 느낌으로 보기 쉬워졌습니다.make_prettytable 는 첫 번째 인수( others )에는 내용을, 다음 인수( header )에는 상단의 정보를 넣고 있습니다.header 는 인수를 받지 못했을 경우에 range 로 번호를 흔들어 줍니다.others[[1,2,...], [2,3,...]...] 적인 리스트를 넣어 주면 됩니다.prettytable.PrettyTable 로 상단( header )을 넣어 표의 원을 만듭니다.
다음 for 문에서 others를 돌려 .add_row그리고는, print 하는 것만으로 간단하게 표를 볼 수 있습니다.

make_mecab_info_table은 일반적으로 문자를 처리하는 것입니다.

list의 요소의 길이가 흩어져 있을 때, 출력해 확인하려고 해도 뭔가 보기 어렵기 때문에 그런 때에 편리합니다.

좋은 웹페이지 즐겨찾기