我收集了一些"文章",每篇长达1到10个句子,用嘈杂的非正式英语(即社交媒体风格)写成。 我需要从每篇文章中提取一些信息,如可用的日期和时间。我还需要了解文章的内容以及谁是主要的演员"。
示例,给出句子:"从10.30开始明天上午需要每个人的存在来讨论公司的财务预测。" ,I需要提取:
据我所知,可以在不使用NLP技术的情况下提取日期和时间,但我还没有在Python中找到与Natty(http://natty.joestelmach.com/)一样好的东西。
我在阅读NLTK书籍的某些章节并观看有关Coursera的NLP课程的视频后,如何继续进行的理解如下:
我可以(暂时)跳过1,2和3并生成一个有效但可能具有高错误率的实现吗? 我应该使用哪种语料库?
我还在考虑一个预处理步骤,以纠正常见的拼写错误或快捷方式,例如" yess"," c u"和其他可憎的。 我可以利用的任何已存在的东西?
简而言之,问题是:我解决这个问题的方法是否正确?如果没有,我做错了什么?
答案 0 :(得分:4)
我可以(暂时)跳过1,2和3并产生一个工作,但是 可能具有高错误率,实施?哪个语料库应该 我用?
我还想到了一个纠正常见拼写的预处理步骤 错误或快捷方式,如" yess"," c u"和其他可憎的。 我已经存在的任何东西都可以利用吗?
我建议你先处理标准语言文字。您引用的预处理本身就是一个NLP任务,称为规范化。这是Twitter规范化的资源:http://www.ark.cs.cmu.edu/TweetNLP/,另外,你可以使用拼写检查,句子边界检测,......
简而言之,问题是:我的方法是解决这个问题 问题对不对?如果没有,我做错了什么?
如果你对规范化进行抽象,我认为你的方法是有效的。关于注释过程的自动化:您可以先使用现成的组件来引导过程,然后在不同的迭代过程中进行校正,重新训练等等。为了获得可接受的结果,您需要多次执行第2,3和4步。
如果您有兴趣了解问题并能够优化现有解决方案,我建议您专注于允许您开发自己的模型的工具。如果您优先考虑获得结果而不是开发自己的模型,我建议您查看现有的开源文本工程框架,例如Gate(https://gate.ac.uk/)UIMA(http://uima.apache.org/)和DKPro(扩展UIMA) (https://code.google.com/p/dkpro-core-asl/)。所有这三个框架都包含现有组件,因此您可以使用各种可能的解决方案。
答案 1 :(得分:0)
我建议试试NER和Temporal Normalizer。 以下是我为您的例句所看到的内容:
您可以在此处尝试演示: http://deagol.cs.illinois.edu:8080/