目标
对一段中文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结果