def check_rule(token, training_data, mode):
if mode == "frag":
children = training_data["words"]
remove = list.remove
def in_child(x):
for i in token:
if i not in x:
return False
remove(x, i)
return True
for i in children:
if in_child(i):
return False
return True
# is_present = children.map(in_child)
elif mode == "wild":
# is_present = training_data[1].map(methodcaller("__contains__", token))
for i in training_data[1]:
if token in i:
return False
return True
elif mode == "prefix":
# is_present = training_data[1].str.startswith(token)
token_len = len(token)
for i in training_data[1]:
if i[:token_len] == token:
return False
return True
# token_len = len(token)
# is_present = training_data[1].str[:token_len] == token
# is_present = training_data[1].map(methodcaller("startswith", token))
for i in is_present:
if i:
return False
return True
此功能包括:
token
:字符串training_data
:一个有两列的pandas数据帧,其中有ID和vendor name列mode
:可以是prefix
、wild
、frag
中的任意一个。你知道吗
注释部分是我在评测之后尝试的优化。但是,这仍然需要很多时间。能否进一步优化?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐