首页 文章

您认为Google日历中的“快速添加”功能如何运作?

提问于
浏览
7

我正在考虑一个项目,该项目可能使用类似的功能来处理“快速添加”如何将自然语言解析成可以用某种语义级别理解的东西 . 我有兴趣更好地理解这一点,并想知道你对如何实现这一点的看法 .


如果您不熟悉"Quick Add",请查看Google's KB .


6/4/10 Update
对"Natural Language Parsing"(NLP)的进一步研究产生的结果比我在"Quick Add"中实际实现的结果要广泛得多 . 鉴于此功能需要特定类型的输入而不是真正的自由格式文本,我认为这是一个更窄的NLP实现 . 如果有人能够提出我可以研究的更狭隘的话题,而不是NLP的整个广度,我们将不胜感激 .

那就是说,我找到了一个很好的collection of resources about NLP包括这个伟大的FAQ .

2 回答

  • 3

    我首先要确定一种标准方式来表示我感兴趣的所有信息:事件名称,开始/结束时间(和日期),访客列表,位置 . 例如,我可能会使用这样的XML表示法:

    <event>
        <name>meet Sam</name>
        <starttime>16:30 07/06/2010</starttime>
        <endtime>17:30 07/06/2010</endtime>
    </event>
    

    然后我的目标是 Build 一个关于日期的日记条目语料库,用XML表格注释 . 我该如何收集数据?好吧,如果我是谷歌,我可能有各种各样的方式 . 因为我是我,所以我可能首先写下我能想到的所有方式来表达这种东西,然后手工注释它 . 如果我可以通过浏览朋友的电子邮件和诸如此类的东西来增加这一点,那就更好了 .

    现在我有一个语料库,它可以作为一组单元测试 . 我需要编写解析器代码来适应测试 . 解析器应该将一串自然语言翻译成我的注释的逻辑形式 . 首先,它应该将字符串拆分为其组成单词 . 这称为令牌化,并且有可用的现成软件 . (例如,请参阅NLTK . )要解释单词,我会在数据中查找模式:例如,'at'或'in'之后的文本应标记为位置; 'for X minutes'表示我需要将该分钟数添加到开始时间以获得结束时间 . 统计方法在这里可能有点过分 - 最好创建一系列手工编码规则,表达你自己对如何解释这个领域中的单词,短语和结构的知识 .

  • 0

    似乎这个问题确实没有狭隘的方法 . 我想避免不得不拉动整个NLP来找出解决方案,但我还没有找到任何替代方案 . 如果我以后找到一个非常好的解决方案,我会更新这个 .

相关问题