diff --git a/app/difficulty.py b/app/difficulty.py index 20f947d..ad4c890 100644 --- a/app/difficulty.py +++ b/app/difficulty.py @@ -6,12 +6,14 @@ # Purpose: compute difficulty level of a English text import pickle -import math import time -from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order, sort_in_ascending_order import snowballstemmer +from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order, sort_in_ascending_order + +# 定义一个全局的res_d, 记录数据库单词评级之后的单词及其等级 +res_d = {} def load_record(pickle_fname): f = open(pickle_fname, 'rb') @@ -43,7 +45,8 @@ def convert_test_type_to_difficulty_level(d): result[k] = 8 time_end = time.time() print('convert_test_type_to_difficulty_level totally cost', time_end - time_start) - + global res_d + res_d = result return result # {'apple': 4, ...} @@ -55,7 +58,10 @@ def get_difficulty_level_for_user(d1, d2): """ time_start = time.time() # TODO: convert_test_type_to_difficulty_level() should not be called every time. Each word's difficulty level should be pre-computed. - d2 = convert_test_type_to_difficulty_level(d2) # 根据d2的标记评级{'apple': 4, 'abandon': 4, ...} + if res_d == {}: + d2 = convert_test_type_to_difficulty_level(d2) # 根据d2的标记评级{'apple': 4, 'abandon': 4, ...} + else: + d2 = res_d stemmer = snowballstemmer.stemmer('english') for k in d1: # 用户的词