Поиск личной информации в документах (сложная проблема) - PullRequest
2 голосов
/ 17 февраля 2011

Мне поручено создать автоматизированную систему, которая удаляет личную информацию из текстовых документов.

Электронные письма, телефонные номера относительно легко удалить.Имена нет.Проблема сложная, потому что в документах есть имена, которые необходимо сохранить (например, ссылки, знаменитости, персонажи и т. Д.).Имя автора должно быть удалено из содержания (может также быть больше одного автора).

В настоящее время я думаю о следующем:

  • Довольно часто личные имена находятсяв начале документа
  • Посмотрите, как часто имя используется в документе (личные имена обычно пишутся только один раз)
  • Поиск слов вокруг имени для поиска шаблонов (упоминанияуниверситета и так далее ...)

Есть идеи?Кто-нибудь уже решил эту проблему ??

Ответы [ 3 ]

1 голос
/ 18 февраля 2011

С современной технологией невозможно выполнить то, что вы описываете, полностью автоматизированным способом с низким уровнем ошибок.

Возможно, можно найти приблизительное решение, но все равно будет много ошибок ...... либо ложных срабатываний, либо ложных отрицательных, либо какая-то их комбинация.

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

0 голосов
/ 17 июля 2011

Это распространенная проблема в базовых курсах криптографии (моя первая работа по программированию).

Если вы сгенерировали word гистограмму всего корпуса вашего документа (каждая ячейка - это слово на оси x, высота которого - частота, представленная высотой на оси y) Такие слова, как «это», «то», «и» и т. д., было бы легко идентифицировать из-за их больших значений y (частоты). Фамилии должны быть справа от вашей гистограммы - очень редко; имена даны слева, но не намного.

Эта техника точно определяет имена в каждом документе? Нет, но это может быть использовано, чтобы существенно ограничить ваш поиск, исключив все слова, частота которых превышает X . Аналогично, должны быть другие атрибуты, которые ограничивают ваш поиск, например, имена авторов появляются только один раз в документах, которые они создали, а не в каких-либо других документах.

0 голосов
/ 19 февраля 2011

Область машинного обучения, о которой вам нужно было бы узнать, чтобы попытаться это сделать, - это обработка естественного языка. Существует несколько различных подходов, которые могут быть использованы, байесовские сети (что-то лучше, чем наивный байесовский классификатор), машины опорных векторов или нейронные сети будут областями для исследования. Независимо от системы, которую вы в конечном итоге создадите, вероятно, потребуется использовать аннотированный корпус (помеченный набор данных), чтобы узнать, где должны быть имена. Даже с большим корпусом все, что вы создадите, не будет на 100% точным, поэтому вам, вероятно, лучше установить флажки для имен для удаления, чем просто удалять все слова, которые могут быть именами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...