D3交互式可视化Python自然语言工具包命名实体识别

命名实体识别 (NER) 可能是信息提取的第一步,旨在将文本中的命名实体定位和分类为预定义的类别,例如人名、组织、位置、时间表达、数量、货币价值、百分比 等。 NER 在自然语言处理 (NLP) 的许多领域都有使用,它可以帮助回答许多现实世界的问题。

本文介绍如何使用 NLTK 和 SpaCy 构建命名实体识别器,识别原始文本中的人、组织或位置等事物的名称。

自然语言工具包

import nltk
from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag

信息提取

我们将词标记化和词性标记应用于句子。我们得到一个元组列表,其中包含句子中的各个单词及其相关的词性。

现在我们将实现名词短语分块,以使用正则表达式来识别命名实体,该正则表达式由指示句子应该如何分块的规则组成。

我们的组块模式包含一个规则,即当组块器找到一个可选的限定词 DT 时,应该形成一个名词短语 NP,然后是任意数量的形容词 JJ,然后是一个名词 NN。

块解析

使用这种模式,我们创建了一个块解析器并在我们的句子上测试它。

输出可以被读取为树或以 S 为第一级的层次结构,表示句子。我们也可以以图形方式显示它。

实体

import spacy
from spacy import displacy
from collections import Counter
import en_core_web_sm
nlp = en_core_web_sm.load()

Spacy 的优点之一是我们只需要应用一次 nlp,整个后台管道将返回对象。

从文章中提取命名实体

接下来,我们逐字逐句提取词性并对这句话进行词形还原。

[(x.orth_,x.pos_, x.lemma_) for x in [y 
                                      for y
                                      in nlp(str(sentences[20])) 
                                      if not y.is_stop and y.pos_ != 'PUNCT']]

最后,我们可视化整篇文章的实体。

源代码

项目:D3交互式可视化Python电子邮件数据集命名实体识别

源代码

详情参阅 - 亚图跨际

你可能感兴趣的:(数据科学,python,自然语言处理,spacy,命名实体识别)