ViDove / dict_util.py
TheAnsIs42
add dict utility, functions not pruned
fa3faa9
raw
history blame
1.38 kB
import csv
import pickle
### NOTICE: csv only accept two colomn input. but accept multi-time input.
# 1_2_3, 1 is action, 2 is supply object, 3 is accept object
def update_dict_csv(term_dict, f):
for rows in csv.reader(f):
if rows[0] in term_dict:
if rows[1] not in term_dict[rows[0]]:
term_dict[rows[0]] = term_dict[rows[0]]+[rows[1]]
else:
term_dict[rows[0]]=[rows[1]]
pass
def export_dict_csv(term_dict, f):
for key, val in term_dict.items():
csv.writer(f).writerow([key, val])
pass
def save_dict_pickle(term_dict, f):
pickle.dump(term_dict, f, pickle.HIGHEST_PROTOCOL)
def update_csv_pickle(pickle_f, csv_f):
term_dict = pickle.load(pickle_f)
for rows in csv.reader(csv_f):
if rows[0] in term_dict:
if rows[1] not in term_dict[rows[0]]:
term_dict[rows[0]] = term_dict[rows[0]]+[rows[1]]
else:
term_dict[rows[0]]=[rows[1]]
#save to pickle file, highest protocal to get better performance
pickle.dump(term_dict, pickle_f, pickle.HIGHEST_PROTOCOL)
#demo
term_dict_sc2 = {}
with open("./finetune_data/dict_enzh.csv", 'r', encoding='utf-8') as f:
update_dict_csv(term_dict_sc2,f)
with open("../test.csv", "w", encoding='utf-8') as w:
export_dict_csv(term_dict_sc2,w)
## for load pickle, just:
# pickle.load(f)