Я хочу сравнить два списка (результат, основание-правда). Вывод должен содержать 1, если оба совпадения, если не 0, и вывод положительно чувствителен. Например:
result= [1,2,3,4,5]
ground-truth=[2,4]
Output= [0,1,0,1,0]
Я реализовал код Python для этого:
def comparedkeground(dke,grd):
correct=np.zeros(len(dke))
try:
for i in range(len(grd)):
a=dke.index(grd[i])
correct[a]=1
except:
'ValueError'
return correct
Этот код дает идеальный результат для некоторых случаев: например:
d=[1,2,30,4,6, 8, 50, 90, 121]
e=[30, 2, 50, 90]
print(comparedkeground(d,e))
[0. 1. 1. 0. 0. 0. 1. 1. 0.]
cc=['word', 'flags', 'tv', 'nanjo', 'panjo']
ccc=['panjo', 'tv']
print(comparedkeground(cc,ccc))
[0. 0. 1. 0. 1.]
Нотот же код не работает:
u=['Lyme-disease vaccine', 'United States', 'Lyme disease', 'Allen Steere']
u1= ['drugs', 'Lyme-disease vaccine', 'Lyme disease']
print(comparedkeground(u,u1))
[0. 0. 0. 0.]