difficulty.py: do not stem a word twice.

Hui Lan 2023-05-23 22:22:57 +08:00
parent 1295616d5b
commit a5c3564f15
1 changed files with 6 additions and 4 deletions

View File

@ -49,15 +49,17 @@ def get_difficulty_level_for_user(d1, d2):
在d2的后面添加单词没有新建一个新的字典 在d2的后面添加单词没有新建一个新的字典
""" """
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, ...}
stem = snowballstemmer.stemmer('english') stemmer = snowballstemmer.stemmer('english')
for k in d1: # 用户的词 for k in d1: # 用户的词
if k in d2: # 如果用户的词以原型的形式存在于词库d2中 if k in d2: # 如果用户的词以原型的形式存在于词库d2中
continue # 无需评级,跳过 continue # 无需评级,跳过
elif stem.stemWord(k) in d2: # 如果用户的词的词根存在于词库d2的词根库中
d2[k] = d2[stem.stemWord(k)] # 按照词根进行评级
else: else:
d2[k] = 3 # 如果k的词根都不在那么就当认为是3级 stem = stemmer.stemWord(k)
if stem in d2: # 如果用户的词的词根存在于词库d2的词根库中
d2[k] = d2[stem] # 按照词根进行评级
else:
d2[k] = 3 # 如果k的词根都不在那么就当认为是3级
return d2 return d2