Open ri-riri opened 4 years ago
for series in selected_products:
files = glob.glob("./review/*/*/{}_*_*.txt".format(series)) #*に入るのは何でもいい
for file in files:
f = open(file,"r")
review = f.read()
# print(review)
count_result = {}
for selected_product in selected_products: #選択製品リストから一つ一つを取り出す
sum_result = {} #製品ごとに結果を格納する.初期化.
count_result[selected_product] = sum_result
skip_flag = False #Falseは0と同じ
for tuple_list in mydict: #選択製品のカウント結果のそれぞれの鍵を取り出す
if not tuple_list in sum_result:
sum_result[tuple_list] = 0
sum_result[tuple_list] += count_result[selected_product][tuple_list]
#mydictの値の部分をカウントしていく
for item in tuple_list: #itemはキヤノンらしいなどの単語1つ1つ
if review.count(item) > 0: #数えた結果が0より大きかったら
skip_flag = True #Trueは1と同じ
continue #次のitemに行く
if skip_flag == True: #skip_flagがTrueなら処理実行
skip_flag = False #Trueを踏んだらFalseに戻す
mydict[tuple_list] += 1 #mydictの値のカウントを1増やす
continue #次のtuple_listに行く
f.close()
print(count_result)
#count_result[selected_product]で該当レビューのカウント結果を抜き出せる
#Pythonのdict型では,未知鍵で呼び出した場合は新規に追加される仕様
print(count_result)
->
{'EOS R5_body':
{
('キヤノンらしい', 'キャノンらしい', 'キャノンらしく', 'キヤノンらしさ', 'キャノンっぽい', 'キヤノンぽい', 'Canonらしい',
'Canonらしく', 'canonらしさ'): 0, ('キヤノンらしくない',): 0,
('ニコンらしい', 'ニコンらしく', 'ニコンらしさ', 'ニコンっぽい', 'ニコン機らしい', 'Nikonらしい', 'NIKONらしい',
'Nikonらしい', 'Nikonらしく'): 0,
('フジらしい', 'FUJIFILMらしさ'): 0, ('ソニーらしい', 'SONYらしい'): 0,
....
}
....
}
0になる
issue #7 参照
reviewごとにmydict(評価辞書タプル:0の形式で作ったもの)のカウントを0にリセットするようにしておきます.
別途用意しておいた選択製品リストselected_productsに対して,
とでもすればレビューごとにカウント結果をとりまとめられます.mydictとcount_result[selected_product]の中身の値(カウント結果)は違うけど,鍵はすべて共通なのがポイントかな.
selected_productsの中身は
["EOS R5_body" , "Nikon D5500_body" , "Sony α5000"]
みたいなんがくる想定.files = glob.glob("*_*_*.txt)
の初めの部分かな~9/30 8:42追記 未知鍵追加の場合の初期値を0で固定したいのでif not文を追加