形態素・構文解析で時間に関係する単語を1つのリストにまとめようとした際、
appendを用いて追加しようとすると、なぜか上書きされてしまいます。
python
1# -*- coding: utf-8 -*- 2from pyknp import Juman 3from pyknp import KNP 4import sys 5import re 6import json 7import jctconv 8from collections import OrderedDict 9from joblib import Memory 10 11def parse_text(text, option='-tab'): 12 knp = KNP(option=option) 13 return knp.parse(text) 14 15class FindRange: 16 knp_option='-tab' 17 18 def __init__(self,text): 19 self.text = text 20 self.result = parse_text(self.text, option = FindRange.knp_option) 21 22 def get_range_word(self): 23 time_range = [] 24 for tag in self.result.tag_list(): 25 for mrph in tag.mrph_list(): 26 if not mrph.hinsi == '助詞' and not mrph.hinsi == '助動詞' and not mrph.bunrui == '読点' and not mrph.bunrui == '句点': 27 if tag.features.get('時間'): 28 time_range.append(mrph.midasi) 29 return time_range 30 31if __name__ == '__main__': 32 quantity_range = [] 33 time_range = [] 34 s_time_range = [] 35 file = 'sample' 36 with open('{}.txt'.format(file),encoding = 'utf-8') as f: 37 text_list = f.readlines() 38 for text in text_list: 39 if not text == '\n' and not text is None: 40 text = ''.join(text.split()) # スペースを除く 41 text = jctconv.z2h(text,kana = False, digit = True, ascii = True) 42 time_range = FindRange(text).get_range_word() 43 print(time_range) 44``` 45appendで要素追加した際、下記のように 46 47['以下'] 48['以下', '化'] 49['以下', '化', '化'] 50['以下', '化', '化', '化'] 51['以下', '化', '化', '化', '化'] 52['以下', '化', '化', '化', '化', '等'] 53['以下', '化', '化', '化', '化', '等', '化'] 54['以下', '化', '化', '化', '化', '等', '化', '市'] 55['以下', '化', '化', '化', '化', '等', '化', '市', '以下'] 56 57実行されるはずなのですが、上記のプログラムを実行すると、下記のようになってしまいます。 58 59<実行結果> 60['現在'] 61['年度'] 62['週'] 63['週', '日'] 64['週', '日', '年間'] 65['年'] 66['年', '月'] 67['年', '月', '日'] 68['年'] 69['年', '月'] 70['年', '月', '日'] 71['年', '月', '日', '現在'] 72['現在'] 73['現在'] 74[]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/06 09:11