所以我要构建一个社交Web应用程序的原型: - 整合用户的Facebook数据(工作时间,住宅和工作办公室) 创建一个网络应用程序,以便有类似路线的朋友的朋友和朋友可以互相开车/骑自行车。
然而,为了使这个应用程序有用,它应该能够提取关键字(例如工作时间,或者如果有人必须稍后工作(并且他/她在Facebook上发布)。现在我正在阅读很多方法,但我不知道选择哪一个: - 情绪分析 - 词法分析 - 语法分析
提前致谢。
答案 0 :(得分:1)
最终你想要的是一种类似人类的智能,它可以在所有帖子的行之间读取以提取信息。因此,一般而言,您遇到的问题与NLP的每个分支中的其他人都面临的问题相同。我只是指出了这一点,因为你意识到你的问题变成了我应该使用哪种不完美的近似。
就个人而言,我从一个简单的文本匹配器开始。寻找类似&#34的字符串;今天在9"开始工作。收集你的核心句子列表。
然后你意识到由于改述而存在变化。 "今天开始工作9","从今天开始9"," 9是我今天的开始时间"等等。此时带上一个句子分析器,而不是一串ascii代码,句子变成一串名词,形容词和动词。
你也有同义词:"今天在9"开始我的工作,"今天在9"开始办公室,"今天开始工作比正常晚一个小时&# 34 ;. WordNet(以及通常的语义网络)可以帮助一点。不过,那里的最后一个例子不仅要求解析一个相当复杂的条款,而且要知道它们通常的开始时间是8.(哦,在上面所有你需要知道它们是指上午9点还是晚上9点......)
到此为止,您意识到您正在收集大量模糊数据。那就是当你引入一些机器学习时,试着让它为你发现动词" start",名词" work",时间名词的一个组合"今天"和数字" 9"对你有用,而另一个不是很有用(例如"今天在工作中学到了新剧从9开始。忘了设置录音机.Aaarrggh!")
答案 1 :(得分:0)
我认为您正在寻找的是一个自定义的名称实体识别器。 NLTK可能是一个很好的起点。但是,NLTK中的默认NE chunker是在ACE语料库上训练的最大熵chunker,并且尚未经过训练以识别日期和时间。因此,如果你想这样做,你需要训练自己的分类器。
以下链接提供了相同的简洁详细解释。
此外,nltk_contrib中有一个名为timex的模块,可以帮助您满足需求。
https://code.google.com/p/nltk/source/browse/trunk/nltk_contrib/nltk_contrib/timex.py
干杯!