forked from mrlan/EnglishPal
				
			添加测试convert_test_type_to_difficulty_level和get_difficulty_level_for_user函数运行所需时间的几行代码
							parent
							
								
									4d2535a6e8
								
							
						
					
					
						commit
						3361e4ba79
					
				| 
						 | 
					@ -7,6 +7,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import pickle
 | 
					import pickle
 | 
				
			||||||
import math
 | 
					import math
 | 
				
			||||||
 | 
					import time
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order, sort_in_ascending_order
 | 
					from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order, sort_in_ascending_order
 | 
				
			||||||
import snowballstemmer
 | 
					import snowballstemmer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +26,7 @@ def convert_test_type_to_difficulty_level(d):
 | 
				
			||||||
    :param d: 存储了单词库pickle文件中的单词的字典
 | 
					    :param d: 存储了单词库pickle文件中的单词的字典
 | 
				
			||||||
    :return:
 | 
					    :return:
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					    time_start = time.time()
 | 
				
			||||||
    result = {}
 | 
					    result = {}
 | 
				
			||||||
    L = list(d.keys())  # in d, we have test types (e.g., CET4,CET6,BBC) for each word
 | 
					    L = list(d.keys())  # in d, we have test types (e.g., CET4,CET6,BBC) for each word
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,6 +41,8 @@ def convert_test_type_to_difficulty_level(d):
 | 
				
			||||||
            result[k] = 7
 | 
					            result[k] = 7
 | 
				
			||||||
        elif 'BBC' in d[k]:
 | 
					        elif 'BBC' in d[k]:
 | 
				
			||||||
            result[k] = 8
 | 
					            result[k] = 8
 | 
				
			||||||
 | 
					    time_end = time.time()
 | 
				
			||||||
 | 
					    print('convert_test_type_to_difficulty_level totally cost', time_end - time_start)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return result  # {'apple': 4, ...}
 | 
					    return result  # {'apple': 4, ...}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,6 +53,7 @@ def get_difficulty_level_for_user(d1, d2):
 | 
				
			||||||
    d1 用户不会的词
 | 
					    d1 用户不会的词
 | 
				
			||||||
    在d2的后面添加单词,没有新建一个新的字典
 | 
					    在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.
 | 
					    # 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, ...}
 | 
					    d2 = convert_test_type_to_difficulty_level(d2)  # 根据d2的标记评级{'apple': 4, 'abandon': 4, ...}
 | 
				
			||||||
    stemmer = snowballstemmer.stemmer('english')
 | 
					    stemmer = snowballstemmer.stemmer('english')
 | 
				
			||||||
| 
						 | 
					@ -61,6 +67,8 @@ def get_difficulty_level_for_user(d1, d2):
 | 
				
			||||||
                d2[k] = d2[stem]  # 按照词根进行评级
 | 
					                d2[k] = d2[stem]  # 按照词根进行评级
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                d2[k] = 3  # 如果k的词根都不在,那么就当认为是3级
 | 
					                d2[k] = 3  # 如果k的词根都不在,那么就当认为是3级
 | 
				
			||||||
 | 
					    time_end = time.time()
 | 
				
			||||||
 | 
					    print('get_difficulty_level_for_user totally cost', time_end - time_start)
 | 
				
			||||||
    return d2
 | 
					    return d2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue