Поиск по базе данных названий юридических лиц (колледжи, города, личности, страны ...)

StackOverflow https://stackoverflow.com/questions/1535402

Вопрос

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

Есть ли какая-нибудь база данных, к которой мы можем подключиться, с помощью которой мы можем выполнить очистку наших сообщений, чтобы сверить их со значениями в базе данных, чтобы распознать их?

Это было полезно?

Решение

Вопрос, по-видимому, подразумевает онлайновую базу данных, которая будет запрашиваться во время обработки сообщений.Операционные проблемы (надежность таких сервисов, задержка во времени отклика и т.д.), А также проблема полноты (необходимость запрашивать несколько баз данных, поскольку ни одна из них не покроет 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 буква)
- Слова, в которых смешаны буквы и цифры (они часто используются для написания имен с ошибками и обхода фильтров, которые ваши проекты хотели бы внедрить)

Другим инструментом, который может оказаться полезным, особенно в начале, будет система, которая собирает статистическую информацию о корпусе сообщений:частота слов, наиболее распространенные слова, наиболее распространенные биграммы (два последовательных слова) и т.д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top