前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NLTK基础 | What? NLTK也能进行命名实体识别!

NLTK基础 | What? NLTK也能进行命名实体识别!

作者头像
提莫在线发育
发布2020-04-16 11:21:29
9570
发布2020-04-16 11:21:29
举报
文章被收录于专栏:AI算法之心

在上一篇<NLTK基础 | 一文轻松使用NLTK进行NLP任务(附视频)>中,简单介绍了NLTK的安装和使用。大家都知道命名实体识别作为NLP几大基础任务之一,在工业界应用也是非常广泛。那么NLTK包能不能进行命名实体识别呢?下面将详细介绍NLTK如何出色的完成命名实体识别任务!

命名实体识别作为自然语言处理的子任务之一,旨在通过算法能够自动的识别出一句话中的实体,比如人物、地点、物品、时间、数字等等。

NLTK包中内置命名实体识别算法,主要分为两种:(1) 识别句子中所有命名实体;(2) 将命名实体识别为它们各自的类型,例如人物,地点,位置等。

这里举一个例子:

代码语言:javascript
复制
import nltkfrom nltk.corpus import state_unionfrom nltk.tokenize import PunktSentenceTokenizer
train_text = state_union.raw("2005-GWBush.txt")sample_text = state_union.raw("2006-GWBush.txt")
custom_sent_tokenizer = PunktSentenceTokenizer(train_text)tokenized = custom_sent_tokenizer.tokenize(sample_text)
def process_content(document):    words = nltk.word_tokenize(document)    tagged = nltk.pos_tag(words)    namedEnt = nltk.ne_chunk(tagged, binary=True)    return namedEnt
namedEnt = process_content(tokenized[6])

在这里,当binary=True,这意味着某物是命名实体,还是不是。没有进一步的细节。结果是:

如果将binary=False,则结果为:

随即,您可以看到一些内容。当binary=False时,它将采用相同的方法,但最终将像"White House"这样的术语拆分为"White"和"House",就好像它们是不同的一样,而我们可以在binary=True选项中看到命名实体识别中"White House"是同一个实体的一部分是正确的。

根据你的目标,可以按照自己的意愿使用binary选项。如果binary=False,则可以得到以下命名实体的类型(ps:这是binary=True所不具备的):

代码语言:javascript
复制
named_entities = []for tagged_tree in namedEnt:    if hasattr(tagged_tree, 'label'):        entity_name = ' '.join(c[0] for c in tagged_tree.leaves())         entity_type = tagged_tree.label()         named_entities.append((entity_name, entity_type))        named_entities = list(set(named_entities))        entity_frame = pd.DataFrame(named_entities, columns=['Entity Name', 'Entity Type'])print(entity_frame)    输出结果为:  Entity Name   Entity Type0       House  ORGANIZATION1       White      FACILITY2        Eric        PERSON

无论哪种方式,你都可能会发现需要做更多的工作才能使其性能更好,但是,NLTK开箱即用,这是非常强大的,值得夸奖的!

以上就简单的介绍了NLTK在命名实体识别任务的用途!希望小伙伴们喜欢!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档