Nlp 从非结构化文本中提取信息

Nlp 从非结构化文本中提取信息,nlp,nltk,Nlp,Nltk,我收集了一系列“文章”,每一篇都有1到10个句子,用嘈杂的非正式英语(即社交媒体风格)撰写。 我需要从每篇文章中提取一些信息,如日期和时间。我还需要了解这篇文章在谈论什么,谁是主要的“演员” 例如,有一句话:“从明天上午10:30开始,所有人都必须到场讨论公司的财务预测。”我需要摘录: 日期/时间=>“明天上午10:30” 主题=>“公司财务预测” 演员=>“每个人” 据我所知,可以在不使用NLP技术的情况下提取日期和时间,但我在Python中还没有找到任何比Natty()更好的方法 在阅读

我收集了一系列“文章”,每一篇都有1到10个句子,用嘈杂的非正式英语(即社交媒体风格)撰写。 我需要从每篇文章中提取一些信息,如日期和时间。我还需要了解这篇文章在谈论什么,谁是主要的“演员”

例如,有一句话:“从明天上午10:30开始,所有人都必须到场讨论公司的财务预测。”我需要摘录:

  • 日期/时间=>“明天上午10:30”
  • 主题=>“公司财务预测”
  • 演员=>“每个人”
据我所知,可以在不使用NLP技术的情况下提取日期和时间,但我在Python中还没有找到任何比Natty()更好的方法

在阅读了NLTK书籍的一些章节并观看了Coursera上NLP课程的一些视频后,我对如何继续进行的理解如下:

  • 使用部分数据创建带注释的语料库。我不能使用现成的语料库,因为文本的非正式性质(例如拼写错误、无信息的大写、单词缩写等)
  • 手动(叹气…)使用Penn TreeBank标记集中的标记对每篇文章进行注释有没有办法自动执行此步骤并检查/修复结果?
  • 在注释文章上培训POS标记员。我发现NLTK培训师项目似乎很有希望()
  • Chunking/Chinking,这意味着我必须使用IOB符号再次手动注释语料库(…)。不幸的是,根据此错误报告,n-gram分块器已损坏:。这似乎是一个主要问题,让我想知道是否应该继续使用NLTK,因为它已经有一年多的历史了
  • 在这一点上,如果我做的一切都正确的话,我假设我会在区块中找到actor、topic和datetime正确吗?
  • 我是否可以(暂时)跳过1、2和3并生成一个工作的、但可能错误率很高的实现我应该使用哪个语料库?

    我也在考虑一个预处理步骤,以纠正常见的拼写错误或快捷方式,如“yess”、“CU”和其他讨厌的单词我可以利用现有的任何东西?

    简而言之,问题是:我解决这个问题的方法正确吗?如果没有,我做错了什么?

    我是否可以(暂时)跳过1、2和3并生成一个工作,但是 可能错误率很高,如何实现?应该使用哪种语料库 我用什么

    我也在考虑一个纠正常见拼写的预处理步骤 错误或捷径,如“是”、“c u”和其他令人憎恶的词。 我可以利用已有的东西吗

    我建议您首先尝试处理标准语言文本。您提到的预处理本身就是NLP任务,称为规范化。这里有一个用于Twitter规范化的资源:,另外,您可以使用拼写检查、句子边界检测

    简言之,问题是:我的方法是否能解决这个问题 问题正确吗?如果没有,我做错了什么

    如果您对规范化进行抽象,我认为您的方法是有效的。关于注释过程的自动化:您可以先使用现成的组件引导该过程,然后进行更正、重新培训等。。。在不同的迭代中。要获得可接受的结果,您需要多次执行步骤2、3和4


    如果您对理解问题和优化现有解决方案感兴趣,我建议您将重点放在允许您开发自己的模型的工具上。如果您优先考虑获得结果而不是开发自己的模型,我建议您研究现有的开源文本工程框架,如Gate()UIMA()和DKPro(它扩展了UIMA)()。这三个框架都封装了现有的组件,因此您有一系列可能的解决方案。

    我建议尝试使用NER和时间规范化器。 下面是我看到的你的例句:

    您可以在此处尝试演示:

    在学术层面上,这是一个非常重要的问题。