python中以表示语块_python自然语言处理学习笔记(七)

一、信息提取

信息有很多种形状和大小。一个重要的形式是结构化数据:实体和关系的可预测的规范的结构。

26b1af8418b2b83f3c3925ee2a5c153d.png

位置数据

如果这个位置数据被作为一个元组(entity, relation, entity)的链表存储在 Python 中,那么这个问题:“哪些组织在亚特兰大经营?” 可翻译如下:

print [org for (e1, rel, e2) if rel=='IN' and e2=='Atlanta']

>> ['BBDO South', 'Georgia-Pacific']

但如果尝试从文本中获得相似的信息,事情就比较麻烦了。所以,需要采取不同的方法,提前定为我们将只查找文本中非常具体的各种信息,如:组织和地点之间的关系。

首先将自然语言句子这样的非结构化数据转换成上图的结构化数据。然后,利用强大的查询工具,如 SQL。这种从文本获取意义的方法被称为信息提取。

信息提取有许多应用,包括商业智能、简历收获、媒体分析、情感检测、专利检索、电子邮件扫描。当前研究的一个特别重要的领域是提取出电子科学文献的结构化数据,特别是在生物学和医学领域。

1. 信息提取结构

处理文档:首先,使用句子分割器将该文档的原始文本分割成句,使用分词器将每 个句子进一步细分为词。接下来,对每个句子进行词性标注,在下一步命名实体识别中将证明这是非常有益的。在这一步,我们寻找每个句子中提到的潜在的有趣的实体。最后,我们使用关系识别搜索文本中不同实体间的可能关系。

80279aa054d854bc17e2ede18d2a9955.png

简单的信息提取系统的结构

要执行前面三项任务,我们可以定义一个函数,简单地连接 NLTK 中默认的句子分割器,分词器和词性标注器:

def ie_preprocess(document):

sentences = nltk.sent_tokenize(document)

sentences = [nltk.word_tokenize(sent) for sent in sentences]

sentences = [nltk.pos_tag(sent) for sent in sentences]

接下来,命名实体识别中࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值