Я пытаюсь обработать CSV-файл, который имеет, как и в каждой строке, текстовое поле с названием организации и положением лица внутри этой организации как неструктурированный текст. Это поле, как правило, беспорядок текста следующим образом:Именованное распознавание объектов с предустановленным списком имен для Python/PHP
Assoc. Research Professor Dept. Psychology Univ. California Santa Barbara
Мне нужно вытащить позицию и название организации. Для позиции я использую preg_match для серии из примерно 60 различных регулярных выражений для разных профессий, и я думаю, что это работает очень хорошо (я предполагаю, что он ловит около 80%). Но у меня проблемы с именем организации. У меня есть таблица MySQL с примерно 16 000 наименований организаций, в которой я могу выполнить простой preg_match, но из-за распространенных орфографических ошибок и аббревиатур это всего лишь около 30% организаций. Например, моя база данных имеет
University of California Santa Barbara
Но файл CSV может иметь любой из вариантов:
Univ Cal Santa Barbara
University Cal-Santa Barbara
University California-Santa Barbara
Cal University, Santa Barbara
мне нужно обработать несколько сотен тысяч записей, и я не могу тратить время, чтобы исправить 70% записей, которые в настоящее время не обрабатываются правильно или кропотливо создают множественные псевдонимы для каждой организации. То, что я хотел бы сделать, - это уловить небольшие различия (например, небольшие орфографические ошибки, дефисы и пробелы и общие сокращения), и, если по-прежнему не найдено совпадений, чтобы в идеале распознать имя организации и создать новую запись для этого.
- Какие библиотеки или инструменты на Python или PHP позволят выполнить сопоставление подобия, которое будет иметь более широкий охват?
- Будет ли NLTK в Python улавливать орфографические ошибки?
- Можно ли использовать AlchemyAPI для обнаружения орфографических организаций? До сих пор я мог использовать его, чтобы поймать правильно созданные организации
- Поскольку я сравниваю короткую строку (название организации) с более длинной строкой (включая имя плюс постороннюю информацию), есть ли какая-либо надежда в используя функцию аналогичного текста PHP?
Любая помощь или понимание будут оценены.
Спасибо, что указали эти ресурсы. Я не знаком с нейронными сетями, но я попытаюсь вникать в это и посмотреть, смогу ли я заставить его работать. – tchaymore