Сравните точность сходства нграмм / косинуса с расстоянием Левенштейна - PullRequest
0 голосов
/ 05 августа 2020

Я сравнил один список названий компаний с основным списком и получил наиболее близкое совпадение с использованием сходства нограмм / косинуса и расстояния Левенштейна. Это дает мне следующее, где я проверил, какие ближайшие совпадения верны, а какие неверны (0 = неверно, 1 = правильно):

import pandas as pd
data = {'Name_Raw':['AECOM TECHNICAL SERVICES', 'AECOM_*', 'AECOM- Amentum', 'AECOM GOVERNMENT SERVICES (Inactive)', 'ADT LLC dba ADT Security Services', 'ADT', 'AAA Call Center', 'AAA of Northern California, Nevada', 'ANHEUSER BUSCH InBev'], 'Name_CleanCorrect':['AECOM', 'AECOM', 'AECOM', 'AECOM', 'ADT SECURITY CORPORATION', 'ADT SECURITY CORPORATION', 'AAA', 'AAA', 'AB InBev'], 'Name_ngram':['AECOM', 'AECOM', 'AECOM', 'AECOM', 'ADT SECURITY CORPORATION', 'ADT SECURITY CORPORATION', 'AAA', 'State Bar of California', 'Ivanhoe Cambridge USA'], 'ngram similarity':[0.38, 1, 0.51, 0.33, 0.64, 0.41, 0.36, 0.30, 0.16], 'Name_Leven':['AECOM', 'AECOM', 'AECOM', 'AECOM', 'ADT SECURITY CORPORATION', 'ADT SECURITY CORPORATION', 'AAA', 'State Bar of California', 'AB InBev'], 'leven_similarity':[0.23, 1, 1, 0.21, 0.65, 0.85, 0.85, 0.37, 0.65], 'ngram_correct':[1, 1, 1, 1, 1, 1, 1, 0, 0], 'leven_correct':[1, 1, 1, 1, 1, 1, 1, 0, 1]}

df2 = pd.DataFrame(data)
print(df2)

Как мне рассчитать порог для использования для обоих методов по отдельности получить не более 10% ложных негативов? т.е. порог сходства нграмм / косинус = 70% по сравнению с расстоянием Левенштейна / нечеткость = 90%?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...