Передісторія. Google Scholar - платформа індексації публікацій. Суть у тому, що ми отримуємо дані про публікації автора, використовуючи публічну апішку (це робити не треба, для програми уявімо, що дані вже отримано і покладено в json файл).
Також, у нас є другий json файл, який являє собою базу даних публікацій цього ж автора, але не повну. Тобто деякі публікації, отримані за апі вже є в базі, а деякі - ні.
Мета: написати алгоритм (консольну програму на Python) а-ля entity resolution, у якому ми маємо перевірити кожен отриманий за апі запис на належність автору. Передбачається, що деякі публікації Google Scholar йому присвоїв випадково.
Шляхи перевірки:
1. ім'я автора може мати різні написання, скорочення тощо. Його пропонується перевіряти відстанню Левенштейна (дистанція редагування).
2. Приблизно так само, як і ім'я, якимось простим способом порівняти дату\місце публікації з тими, що вже зустрічалися в публікаціях автора в бд.
3. Перевірити тему роботи. Тобто порівняти з уже наявними записами в бд (json, який імітує бд). Якщо такої теми немає, то перевірити тематику роботи з темами, на які автор уже писав статті. Це можна зробити, використовуючи одну з моделей Word2vec, отримуючи загальну тему з назв публікацій.
Наскільки я розумію, то все це можна зробити регулярними виразами, але я не дуже розумію як, тож запропоновані вище варіанти - це те, до чого я змогла дійти.
У результаті ми маємо для кожної публікації, отриманої за апі, отримати статус: належить автору, не належить або вже є в бд.
Приблизний вигляд json-файлів з отриманими за апі даними і даними бд прикріплюю.