Проекты с открытым исходным кодом для очистки электронной почты, генерирующие структурированные данные из неструктурированного источника? - PullRequest
0 голосов
/ 09 декабря 2011

Не знаю, с чего начать, так что, надеюсь, вы, ребята, можете прояснить мой вопрос.У меня есть проект, где по электронной почте будут искать конкретные слова / шаблоны и сохранены в структурированном виде.Что-то, что сделано с Trip it .

В статье говорится, что они разработали DataMapper

DataMapper отвечает за прием входящих сообщений электронной почты, адресованных планам [at] tripit.com, и их преобразованиеиз полуструктурированного формата, который вы видите в своем почтовом ридере, в высокоструктурированный XML-документ.

Есть комментарий, в котором также указано

Если вы ищетепостройте это самостоятельно, может быть полезно прочитать немного о Wrappers и Wrapper Induction

Я гуглил и читал об индукции обертки, но это было слишком широкое определение и не помогло мне понять, какпошел бы о решении такой проблемы.

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

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Действительно очень широкий вопрос, но я могу попытаться дать вам некоторые общие идеи, которых может быть достаточно для начала.По сути, это звучит так, будто вы говорите о сложной проблеме синтаксического анализа - сканировании текста и поиске смысла для определенных фрагментов.В зависимости от того, что именно вы ищете, вы можете получить хорошие результаты из нескольких регулярных выражений - такие вещи, как номера телефонов, адреса электронной почты и даты, имеют довольно стандартные структуры, которые должны соответствовать друг другу.Для других точек данных могут быть полезны некоторые индикаторные слова - фраза «отход от» может указывать на то, что ниже следует адрес.Сообщество по обработке естественного языка также имеет большой набор инструментов, доступных для обработки текста - проверьте такие элементы, как речевые теги и семантические анализаторы, если они соответствуют тому, что вы пытаетесь сделать.

Вооружившись этими приемами, вы можете следовать базовому итеративному процессу разработки: для каждой точки данных в ожидаемой структуре вывода определите несколько простых правил для ее захвата.Затем запустите приложение для пакета тестовых данных и посмотрите, какие образцы не захватили эту информацию.Посмотрите на образцы и пересмотрите свои правила, чтобы поймать эти образцы.Повторяйте до тех пор, пока экстрактор не достигнет приемлемого уровня точности.

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

1 голос
/ 17 декабря 2011

Есть несколько способов и способов сделать это.

Первая часть, которая включает в себя получение доступа к содержимому электронной почты, на который я не буду отвечать.По сути, я предполагаю, что у вас есть доступ к тексту электронных писем, и если вы этого не сделаете, есть некоторые библиотеки, которые позволяют подключить Java к почтовому ящику, например, к верблюду (http://camel.apache.org/mail.html).

Так что теперьу вас есть электронная почта, и что тогда?

Удобная вещь, которая может помочь, состоит в том, что у lingpipe (http://alias -i.com / lingpipe / ) есть распознаватель сущностей, который вы можетезаполнить ваши собственные термины. В частности, посмотрите на некоторые из их учебников по извлечению и их словарь экстрактор (http://alias -i.com / lingpipe / demos / tutorial / ne / read-me.html ) Так внутрииз экстрактора словаря lingpipe (http://alias -i.com / lingpipe / docs / api / com / aliasi / dict / ExactDictionaryChunker.html ) вы просто импортируете интересующие вас термины и используете ихчтобы связать метки с электронной почтой.

Вам также может пригодиться следующий вопрос: Распознавание именованных объектов на основе словаря с нулевым расстоянием редактирования: LingPipe, Lucene или что?

...