在iOS电子邮件客户端中,当电子邮件包含日期、时间或位置时,文本将变成超链接,只需点击该链接即可创建约会或查看地图。它不仅适用于英语电子邮件,也适用于其他语言的电子邮件。我喜欢这个功能,并想了解他们是如何做到的。
要做到这一点,天真的方法是使用许多正则表达式并运行它们。然而,我认为这不会很好地扩展,只适用于特定的语言或日期格式等。我认为Apple必须使用一些机器学习的概念来提取实体(8:00 8PM,8 8PM,8:00,0800,20:00,20h,20h00,2000等)。
你知道苹果是如何在其电子邮件客户端中如此快速地提取实体的吗?你会使用什么机器学习算法来完成这样的任务?
发布于 2012-02-25 18:10:10
这实际上是苹果公司很早以前就开发的一项技术,叫做Apple Data Detectors
。你可以在这里了解更多:
http://www.miramontes.com/writing/add-cacm/
本质上,它解析文本并检测表示特定数据片段的模式,然后对其应用操作系统上下文操作。它很整洁。
发布于 2012-02-24 21:12:17
问题的一部分可能是NSDataDetector
类。它用于识别一些标准类型,如电话号码。
发布于 2012-02-25 18:42:22
我曾经使用pyparsing编写了一个解析器来做这件事。这真的很简单,你只需要把所有不同的方法都弄对,但并不是那么多。它只花了几个小时,而且相当快。
https://stackoverflow.com/questions/9294926
复制相似问题