在 iOS 电子邮件客户端中,当电子邮件包含日期、时间或位置时,文本将成为超链接,只需点击链接即可创建约会或查看地图。它不仅适用于英语电子邮件,也适用于其他语言。我喜欢这个功能,并且想了解他们是如何做到的。
最简单的方法是使用许多正则表达式并运行它们。然而,我认为这不会很好地扩展,并且仅适用于特定的语言或日期格式等。我认为苹果必须使用机器学习的某种概念来提取实体(晚上 8:00、晚上 8:00、晚上 8:00、 0800、20:00、20h、20h00、2000 等)。
知道苹果如何能够在其电子邮件客户端中如此快速地提取实体吗?您将应用什么机器学习算法来完成这样的任务?
他们可能会使用信息提取 http://en.wikipedia.org/wiki/Information_extraction为此的技术。
这是斯坦福大学的演示SUTime https://nlp.stanford.edu/software/sutime.html tool:
http://nlp.stanford.edu:8080/sutime/process http://nlp.stanford.edu:8080/sutime/process
您可以提取文档中有关 n 元语法(连续单词)的属性:
- 字母数
- 符号数
- length
- 前一个单词
- nextWord
- 下一个单词符号数
...
然后使用分类算法,并为其提供正例和负例:
Observation nLetters nSymbols length prevWord nextWord isPartOfDate
"Feb." 3 1 4 "Wed" "29th" TRUE
"DEC" 3 0 3 "company" "went" FALSE
...
您可能会分别举出 50 个例子,但越多越好。然后,算法根据这些示例进行学习,并可以应用于以前从未见过的未来示例。
它可能会学习诸如以下的规则
- 如果前一个单词只是字符,也许是句点......
- 当前单词是“二月”、“三月”、“该”......
- 下一个单词是“第十二”,any_number ...
- 然后是日期
这里有一个不错的视频 http://videolectures.net/mlas06_nigam_tie/由 Google 工程师就该主题提出
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)