0

不知道从哪里开始,所以希望你们能解决我的问题。我有一个项目,将在其中搜索电子邮件以查找特定的单词/模式并以结构化的方式存储。用Trip it完成的事情。

文章指出,他们开发了一个 DataMapper

DataMapper 负责接收发送至计划 [at] tripit.com 的入站电子邮件,并将它们从您在邮件阅读器中看到的半结构化格式转换为高度结构化的 XML 文档。

有一条评论还指出

如果您想自己构建它,阅读一些关于 Wrappers 和 Wrapper Induction 的内容可能会有所帮助

我在 Google 上搜索并阅读了有关包装器归纳的信息,但它的定义过于宽泛,并没有帮助我理解如何解决此类问题。

是否有一些开源项目可以做类似的事情?

4

2 回答 2

1

有几种不同的方法和方法可以实现这一点。

第一部分涉及访问电子邮件内容,我不会在这里回答。基本上,我假设你可以访问电子邮件的文本,如果你没有,有一些库可以让你将 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 还是什么?

于 2011-12-17T18:24:16.443 回答
1

确实是一个非常广泛的问题,但我可以尝试给您一些一般性的想法,这可能足以开始。基本上,听起来你在谈论一个复杂的解析问题——扫描文本并希望将含义应用于特定的块。根据您正在寻找的具体内容,您可能会从一些正则表达式中获得一些不错的结果 - 电话号码、电子邮件地址和日期等内容具有相当标准的结构,应该是可匹配的。其他数据点可能会受益于一些指示词——短语“离开”可能表明接下来是一个地址。自然语言处理社区也有一个可用于文本处理的大型工具集——如果有的话,请查看诸如词性标注器和语义分析器之类的东西

借助这些技术,您可以遵循基本的迭代开发过程:对于预期输出结构中的每个数据点,定义一些简单的规则来捕获它。然后,在一批测试数据上运行应用程序,看看哪些样本没有捕获该数据。查看样本并修改规则以捕获这些样本。重复直到提取器达到可接受的精度水平。

根据您的问题的具体情况,可能有机器学习技术可以为您自动化大部分过程。

于 2011-12-17T20:37:19.333 回答