НЛП Сопоставление названий городов и возврат относительного счёта - PullRequest
1 голос
/ 12 мая 2019

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

Например, сопоставление извлеченного названия города "N York" из заголовка новости со строкой базы данных с названием города "New York".

Я пробовал несколько библиотек Python, таких как Fuzzy Wuzzy, расстояние Левенштейна, функция подобия Spacy, но, похоже, не подходит для моего варианта использования.

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

Ответы [ 3 ]

1 голос
/ 14 мая 2019

Перед просмотром ваших данных мне кажется, что вам нужно использовать ту или иную версию расстояния редактирования - если не Левенштейна, то, возможно, Джаро Винклера, или любую другую функцию расстояния от https://pypi.org/project/textdistance/. Или, может быть, даже средневзвешенное значение нескольких функций расстояния.

И если вы приведете больше примеров сложных пар названий городов, было бы легче придумать более конкретные советы. Например. JW расстояние между Нью-Йорком и Нью-Йорком составляет 0,925 - что именно не так с этим числом?

0 голосов
/ 21 мая 2019

Мое предложение для достижения соответствия названию города заключается в использовании лучшей базы данных местоположений.Я очень рекомендую вам проверить www.GeoNames.org .

Они предоставляют действительно обширную базу данных местоположений.В дополнение к своим таблицам для городов, стран и т. Д. Они также предоставляют таблицу AlternateNames с псевдонимами.Так, например, «Большое яблоко» и «Нью-Йорк Сити» связаны с «Нью-Йорком» через внешний ключ.

Кроме действительно неясных ссылок, таких как «Нью-Йорк», это наверняка удовлетворит ваши требования,И так как ваш источник - заголовки новостей, я думаю, что орфография и т. Д. Будут довольно хорошо сохранены.

Вы можете найти все данные здесь: http://download.geonames.org/export/dump/

И это бесплатно.

0 голосов
/ 14 мая 2019

Используйте фонетику, она создает фонетический ключ для каждого речевого звука,

phonetics.dmetaphone('New York')
phonetics.dmetaphone('N York')

выше обоих дает вам уникальный фонетический ключ

Ссылка

...