Как мне найти и автоматизировать оптимальное взвешивание на основе оценок сходства - PullRequest
0 голосов
/ 04 августа 2020

У меня есть таблица ниже после подсчета оценок сходства с использованием различных методов сравнения текстов. Я пытаюсь настроить метод расчета оптимального веса для каждой оценки сходства, чтобы достичь наибольшего совпадения с наивысшей точностью (оценка точности количества совпадений). У меня есть тестовый набор данных с 2500 записями, где я нашел правильные ответы. После расчета оптимального веса / пороговых значений я хочу иметь возможность принимать совпадения тех, которые превышают пороговое значение, а затем просматривать другие и продолжать добавлять правильные ответы, влияющие на эти оптимальные пороговые значения / веса для дальнейшего уточнения и повышения точных результатов.

Вот несколько строк о том, как мои данные в настоящее время выглядят

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_Fuzzy':['AECOM', 'AECOM', 'AECOM', 'AECOM', 'ADT SECURITY CORPORATION', 'ADT SECURITY CORPORATION', 'AAA', 'State Bar of California', 'AB InBev'], 'fuzzy_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], 'fuzzy correct':[1, 1, 1, 1, 1, 1, 1, 0, 1]}

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

Я хочу использовать правильные и нечеткие правильные столбцы ngram в сочетании с оценками сходства (подобие ngram и fuzzy_similarity), чтобы найти оптимальные пороговые значения / взвешивание этих пар вместе для достижения наилучших результатов. Так, например, взвешивание fuzzy на уровне 1,2 и ngram на уровне 3,2, а затем принятие всего более 5 et c. (Здесь могут быть другие предложения).

Мне также нужно делать это на постоянной основе, поэтому, если я добавлю еще десять записей, пересчитайте вес и, надеюсь, получите все более и более лучшие результаты.

I Я изучил нейронные сети или метод суммирования, но мне трудно понять, как определить оптимальные пороги, поскольку я балансирую больше потенциальных совпадений с точностью.

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