Поиск по базе данных названий юридических лиц (колледжи, города, личности, страны ...)
-
20-09-2019 - |
Вопрос
Для исследовательского проекта по корпоративным приложениям, над которым я и еще один человек работаем, мы хотим удалить определенный контент со страницы, чтобы сохранить размещенные сообщения универсальными (что означает не оскорбительные и по существу анонимные).Прямо сейчас мы хотим взять сообщение, которое пользователь разместил на доске объявлений, и удалить любой тип имени, название колледжа или учреждения и ненормативную лексику (и, если позже будет возможно, мы хотели бы удалить названия компаний).
Есть ли какая-нибудь база данных, к которой мы можем подключиться, с помощью которой мы можем выполнить очистку наших сообщений, чтобы сверить их со значениями в базе данных, чтобы распознать их?
Решение
Вопрос, по-видимому, подразумевает онлайновую базу данных, которая будет запрашиваться во время обработки сообщений.Операционные проблемы (надежность таких сервисов, задержка во времени отклика и т.д.), А также проблема полноты (необходимость запрашивать несколько баз данных, поскольку ни одна из них не покроет 100% лексических потребностей проекта) делают этот подход онлайн / в режиме реального времени непрактичным.Однако есть множество баз данных, доступных для скачивания и это позволило бы вам создать свою собственную локальную базу данных "горячих слов".
Хорошим местом для начала могло бы быть Сеть слов, если бы вы , скорее всего , использовали все "экземпляр" слова как слова, которые обычно необходимо удалять из сообщений, поскольку вы их анонимизируете / очищаете.(Возможно, вы также захотите сохранить "не экземпляр"слова в отдельной таблице / списке слов "с большей вероятностью все будет в порядке").Один только этот список, вероятно, мог бы достойно поддерживать версию вашего приложения "0.9".
В конце концов вы захотите расширьте эту лексическую базу данных однако из "плохих слов", например, включить аббревиатуры всех университетов (CMU, UCSD, DU, MIT, UNC и тому подобное), названия спортивных команд (Celtics, Bruins, Брюинз, Ред Сокс ...) и, в зависимости от домена ваших сообщений, дополнительные имена общественных деятелей (в Wordnet есть несколько, например, Джордж Буш или Роберт Де Ниро, но в нем отсутствуют менее известные люди или люди, получившие известность совсем недавно:например, Барак Обама)
В дополнение к Wordnet на ум приходят два различных типа источников:
- традиционные онлайновые базы данных
- онтологии и народные экономики
Примерами первых являются, например, "Города / штаты по почтовому индексу" в USPS.Примерами последнего являются различные "списки", составленные учеными, организациями или различными частными лицами.Невозможно предоставить исчерпывающий список любого из этих типов источников, но следующее должно помочь:
- DAML.ORG Каталог онтологий
- Регионы и штаты США пример формата онтологии DAML
- Проект открытого каталога Каталог с открытым исходным кодом (внимание, быстро запутывается)
- SourceWatch.org пример "списка списков :люди в журналистике / политике"
- Ключевые слова поисковой системы:"Список Списков", или также используйте три или четыре слова, которые вы ожидаете найти в списке, который вы ищете.
В более простых случаях можно просто загрузить списки и тому подобное, или также "вырезать и вставить".Онтологии будут "обременены" дополнительными атрибутами, которые вам нужно будет разобрать (в будущем вы, возможно, действительно захотите использовать эти атрибуты и использовать онтологии более традиционным способом, а пока все, что нужно, - это захват лексических сущностей).
Эта задача по составлению лексической базы данных может показаться сложной.Но тот правило 80-20, утверждает, что 20% "горячих слов" будут составлять 80% цитат в сообщениях, и, следовательно, приложив относительно небольшие усилия, вы сможете создать систему, которая охватывает более 90% ваших вариантов использования.
Заглядывая в будущее: За пределами базы данных "горячих слов"
Существует много способов подойти к этой задаче, используя различные методы и концепции из Обработка естественного языка (НЛП).По мере того как ваш проект будет становиться все более сложным, вы можете захотеть ознакомиться с некоторыми из этих концепций и, возможно, реализовать их.Например, на ум приходит простой POS-теггер, поскольку он может помочь [частично] различать, скажем, различные варианты использования токена "SCREW", поскольку ваше приложение отбрасывает оскорбительные слова.("Совет директоров хочет винт студенты" против"Доска должна быть закреплена минимум 4 винты на ярд".
Прежде чем вам понадобятся эти формальные техники НЛП, вы можете использовать несколько правила, основанные на шаблонах для обработки распространенных случаев, связанных с доменом (доменами), в зависимости от типа сообщений, на которые нацелен проект.Например, вы можете рассмотреть следующее:
- (слово) Государственный университет
- Сенатор (Word_Starting_with_Capital буква)
- Слова, в которых смешаны буквы и цифры (они часто используются для написания имен с ошибками и обхода фильтров, которые ваши проекты хотели бы внедрить)
Другим инструментом, который может оказаться полезным, особенно в начале, будет система, которая собирает статистическую информацию о корпусе сообщений:частота слов, наиболее распространенные слова, наиболее распространенные биграммы (два последовательных слова) и т.д.