自然言语处理基础技术之命名实体辨认实战

图灵汇官网

Stanford CoreNLP 命名实体识别

安装

  • 使用命令 pip install stanfordcorenlp 进行安装。
  • 国内用户可以使用清华镜像源,通过 pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple 进行安装。

使用 StanfordCoreNLP 进行命名实体识别

首先需要下载相关模型,下载地址为:https://nlp.stanford.edu/software/corenlp-backup-download.html

对中文进行实体识别

```python from stanfordcorenlp import StanfordCoreNLP

zhmodel = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh') szh = '我爱自然语言处理技术!' nerzh = zhmodel.ner(s_zh)

szh1 = '我爱北京天安门!' nerzh1 = zhmodel.ner(szh1)

print(nerzh) print(nerzh1) 输出结果: [('我爱', 'O'), ('自然', 'O'), ('语言', 'O'), ('处理', 'O'), ('技术', 'O'), ('!', 'O')] [('我爱', 'O'), ('北京', 'STATEORPROVINCE'), ('天安门', 'FACILITY'), ('!', 'O')] ```

对英文进行实体识别

```python engmodel = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27') seng = 'I love natural language processing technology!' nereng = engmodel.ner(s_eng)

seng1 = 'I love Beijing Tiananmen!' nereng1 = engmodel.ner(seng1)

print(nereng) print(nereng1) 输出结果: [('I', 'O'), ('love', 'O'), ('natural', 'O'), ('language', 'O'), ('processing', 'O'), ('technology', 'O'), ('!', 'O')] [('I', 'O'), ('love', 'O'), ('Beijing', 'CITY'), ('Tiananmen', 'LOCATION'), ('!', 'O')] ```

HanLP 命名实体识别

安装

  • 使用命令 pip install pyhanlp 进行安装。
  • 国内用户可以使用清华镜像源,通过 pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple 进行安装。

使用 CRF 算法进行实体识别

```python from pyhanlp import *

CRFnewSegment = HanLP.newSegment("crf") termlist = CRFnewSegment.seg("我爱北京天安门!") print(termlist) 输出结果: [我/r, 爱/v, 北京/ns, 天安门/ns, !/w] ```

NLTK 词性标注

安装

  • 使用命令 pip install nltk 进行安装。
  • 国内用户可以使用清华镜像源,通过 pip install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple 进行安装。

使用 NLTK 进行词性标注和命名实体识别

```python import nltk

s = 'I love natural language processing technology!' stoken = nltk.wordtokenize(s) stagged = nltk.postag(stoken) sner = nltk.chunk.nechunk(stagged) print(s_ner) ```

spaCy 命名实体识别

安装

  • 使用命令 pip install spacy 进行安装。
  • 国内用户可以使用清华镜像源,通过 pip install spacy -i https://pypi.tuna.tsinghua.edu.cn/simple 进行安装。

使用 spaCy 进行命名实体识别

```python import spacy

eng_model = spacy.load('en') s = 'I want to Beijing learning natural language processing technology!'

sent = engmodel(s) for ent in sent.ents: print(ent, ent.label, ent.label) 输出结果: Beijing GPE 382 ```

更多学习资料

  • 公众号:StudyForAI(小白人工智能入门学习)
  • 知乎专栏:https://www.zhihu.com/people/yuquanle/columns

希望以上内容对你有所帮助。

本文来源: 图灵汇 文章作者: 何玺