我正在研究一些自然语言处理算法,用于读取一段文本,如果文本似乎是在建议一个会议请求,它会自动为你设置那个会议。
例如,如果一封电子邮件的文本内容是:
我们明天在市中心7点见面吧”。
算法应该能够检测出事件的时间、日期和地点。
有人知道已经存在的NLP算法可以用于此目的吗?我已经研究了一些NLP资源(如NLTK和R中的一些工具),但没有取得太大成功。
谢谢
回答:
这是信息提取的应用,可以通过序列分割算法如隐马尔可夫模型(HMMs)或条件随机场(CRFs)更具体地解决。
对于软件实现,你可能想从UMass-Amherst的MALLET工具包开始,这是一个流行的库,实现了用于信息提取的CRFs。
你可以将句子中的每个标记视为需要标记的对象,标记为你感兴趣的字段(或’x’表示无关),作为词汇特征的函数(如词性、首字母大写、字典成员等)… 类似这样:
token label features-----------------------------------Let x POS=NNP, capitalized's x POS=POSmeet x POS=VBPtomorrow DATE POS=NN, inDateDictionarysomeplace x POS=NNin x POS=INDowntown LOCATION POS=NN, capitalizedat x POS=IN7pm TIME POS=CD, matchesTimeRegex. x POS=.
不过,你需要先提供一些手动标记的训练数据。