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