python的foolnltk库实现中文NER

目标

对一段中文text进行实体命名识别NER(Named Entity Recognition)


Python安装foolnltk库

第一步 安装foolnltk库 !pip install foolnltk

直接在consolo视图输入这行代码:

!pip install foolnltk

第二步 调用fool模块 import fool

import fool

**

然后问题来了
—ModuleNotFoundError: No module named ‘tensorflow.contrib’

**
在这里插入图片描述问题分析:tensorflow.contrib在tensorflow1.0中构建,而tensorflow现在是2.0版本,tensorflow2.0中contrib被弃用。
我们可以考虑对tensorflow降级,尝试安装旧版tensorflow:

!pip install tensorflow==1.14.0

而一些计算机实验环境下,如果有显卡CUDA加速等,不适合对tensorflow进行降级处理,因此这里给出一些在tensorflow2.0版本下使用tensorflow1.0一些包的方法。
解决方法:当出现No module named 'tensorflow.xxx'类似错误时,先检查代码文件开头import语句,此处我们根据报错提示,打开model.py文件,

import tensorflow as tf

改为

import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()

from tensorflow.contrib.crf import viterbi_decode

改为

from tensorflow_addons.text.crf import viterbi_decode
需要先安装tensorflow_addons库,直接在consolo视图输入 !pip install tensorflow_addons

保存修改的model.py文件后,重新import fool即可成功导入fool模块。
注:predictor.py文件可能出现同样的问题,方法同上。

调用fool.analysis()函数实现NER

import fool
text='''我24小时为您服务,您3秒给我点个赞+关注+收藏。--作于2022年五月五日晚九点四十五分'''
word,ner=fool.analysis(text)
print(word)
print(ner)

运行结果

第一行是分词结果,第二行是NER结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43483899/article/details/124597442
NER