表題の件で質問させてください。
あるテキストファイルを読み込んで、文単位で形態素解析を行い名詞だけ抽出し、基本形を文ごとのリストにしたいと考えています。
このようなテキストを形態素解析するとして
まず冒頭、天皇陛下の御公務の負担軽減等について申し上げます。現在、有識者会議で検討を進めており、近々論点整理が行われる予定です。
①以下のようなひとまとめのリストではなく
['冒頭', '天皇陛下', '公務', '負担', '軽減', '等', '現在', '有識者', '会議', '検討', '論点', '整理', '予定'
②このような文単位で形態素解析されたリストを作りたいです
[['冒頭', '天皇陛下', '公務', '負担', '軽減', '等'], ['現在', '有識者', '会議', '検討', '論点', '整理', '予定']
以下のコードを作成したのですが、このやり方では①のようになってしまいます
②のような形にするにはどのように処理を書くべきでしょうか?
初歩的な質問になりますがアドバイス宜しくお願い致します。
python
1import re 2import numpy as np 3from collections import Counter 4from janome.tokenizer import Tokenizer 5import itertools 6 7def readin(filename): 8 with open(filename, "r") as afile: 9 whole_str = afile.read() 10 sentenses = (re.sub('。', '。 \n', whole_str)).splitlines() 11 return [re.sub('','', u) for u in sentenses if len(u)!=0] 12 13t = Tokenizer() 14 15 16filename = (r'C:\Users\Desktop\abe-enzetsu-2017-01-20.txt') 17string = readin(filename) 18 19ret = [] 20 21for sentense in string: 22 sentense.splitlines() #1行に区切る(for sentense in stringで分離してるから要らない?) 23 for v in t.tokenize(sentense): #形態素解析する 24 if v.part_of_speech.split(',')[0] in ['名詞']: #名詞のみ抽出(なぜか引数なしsplit()では何も表示されない) 25 print(v.base_form) #確認 26 ret.append(v.base_form) #基本形でリストに格納 27print(ret)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/14 05:23