prettytable을 사용하여 간단한 테이블 만들기
7043 단어 prettytable파이썬Python3mecab
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
실제로 만들어 보자
이번에는 형태소 해석을 해준다 mecab
mecab은 문장을 넣으면 형태소 해석 결과를 문자열로 반환합니다.
여기도 쉽게 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.pyimport 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의 요소의 길이가 흩어져 있을 때, 출력해 확인하려고 해도 뭔가 보기 어렵기 때문에 그런 때에 편리합니다.
Reference
이 문제에 관하여(prettytable을 사용하여 간단한 테이블 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Kodaira_/items/61cd0c03bcd214928f2c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ pip search prettytable
prettytable-extras - An extension to the excellent prettytable Python library
$ 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
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) )
Reference
이 문제에 관하여(prettytable을 사용하여 간단한 테이블 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kodaira_/items/61cd0c03bcd214928f2c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)