赞
踩
尽可能多的收集水稻疾病的相关知识,需包含水稻病名称及症状等。收集的非结构化数据可参照以下格式进行保存:
以“水稻赤枯病”为例:
新建名称为“水稻赤枯病.txt”的文件,并将“水稻赤枯病” 的症状描述语句添加到该文件中。
- 水稻赤枯病的发生内因是稻株体内钾含量不足,营养比例失调,秧苗素质差。发病植株外部的典型症状是:叶片上产生大小不等的赤褐色铁锈状斑点,严重时聚合成斑块或条状。
- 斑点最先从下部老叶尖端产生,然后向下逐渐变赤褐色,最后全叶枯死;由下部老叶逐渐向上部叶片蔓延,严重者全株只有少数新叶保持绿色,远望似火烧状。
- 由缺素引起的缺钾型和缺磷型是生理性的。
- 中毒型赤枯主要发生在长期浸水。
以“水稻稻曲病”为例:
新建名称为“水稻稻曲病.txt”的文件,并将“水稻稻曲病” 的症状描述语句添加到该文件中:
该病只发生于水稻穗部,为害部分谷粒。受害谷粒内形成菌丝块渐膨大,内外颖裂开,露出淡黄色块状物,即孢子座,后包于内外颖两侧,呈黑绿色,初外包一层薄膜,后破裂,散生墨绿色粉末,即病菌的厚垣孢子,有的两侧生黑色扁平菌核,风吹雨打易脱落。
可通过百科、农业类网站、水稻疾病文献等途径收集数据。
UIE模型是目前比较常用的通用信息抽取统一框架,在命名实体识别任务中也有比较好的表现。
在本任务中,首先对UIE模型进行一定的了解,为后续从非结构化水稻疾病实体中抽取”实体“做好准备。
知识点:Paddlepaddle框架和Paddlenlp库的安装、UIE模型零样本抽取实体词、UIE模型的定制训练
重 点:UIE模型零样本抽取实体词、UIE模型的定制训练
难 点:UIE模型零样本抽取实体词、UIE模型的定制训练
内 容:1. 准备工作
(1)安装Paddlepaddle框架
(2)安装Paddlenlp
(3)新建目录
(4)配置python环境
(5)新建代码文件
2. 模型简介
3. 应用示例
4. 开箱即用:直接使用UIE模型进行零样本(zero-shot)抽取
5. 训练定制
(1)下载UIE源代码
(2) 选取数据标注工具
任务实现
(1)安装Paddlepaddle框架
点击桌面上的“LXTerminal”图标打开终端,如下图所示:
在终端执行以下命令安装Paddlepaddle:
pip install paddlepaddle==2.3.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装过程如下图所示:
(2)安装Paddlenlp
执行以下命令安装Paddlenlp:
python -m pip install paddlenlp==2.4.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装过程如下图所示:
(3)新建目录
(4)打开Pycharm,配置环境
点击桌面上的”Pycharm“图标,打开Pycharm软件,并点击“Open”,打开项目“Ai_Farmer_Doctor”。
找到/root/Desktop/Ai_Farmer_Doctor目录,点击“ok”。
在弹出的对话框中,选择"Trust Project":
打开“Ai_Farmer_Doctor”后,依次点击“File”->“Settings……”,配置python解释器:
配置python解释器的具体步骤如下:
(5) 创建代码文件
在“test”目录下,新建代码文件“for_uie.py”,具体步骤如下:
将鼠标放在“test”目录上,单击右键,并依次选择“New”->"Python File",在弹出的对话框中,填写文件名称“for_uie”,并按回车键,即可完成python文件的创建。
UIE(Universal Information Extraction):Yaojie Lu等人在ACL-2022中提出了通用信息抽取统一框架UIE。该框架实现了实体抽取、关系抽取、事件抽取、情感分析等任务的统一建模,并使得不同任务间具备良好的迁移和泛化能力。为了方便大家使用UIE的强大能力,PaddleNLP借鉴该论文的方法,基于ERNIE 3.0知识增强预训练模型,训练并开源了首个中文通用信息抽取模型UIE。该模型可以支持不限定行业领域和抽取目标的关键信息抽取,实现零样本快速冷启动,并具备优秀的小样本微调能力,快速适配特定的抽取目标。
参考以下链接了解并体验UIE模型:
UIE模型介绍:https://gitcode.net/mirrors/paddlepaddle/paddlenlp/-/blob/release/2.4/model_zoo/uie/README.md
论文:https://arxiv.org/pdf/2203.12277.pdf
UIE的优势
UIE不限定行业领域和抽取目标,以下是一些零样本行业示例:
paddlenlp.Taskflow提供通用信息抽取、评价观点抽取等能力,可抽取多种类型的信息,包括但不限于命名实体识别(如人名、地名、机构名等)、关系(如电影的导演、歌曲的发行时间等)、事件(如某路口发生车祸、某地发生地震等)、以及评价维度、观点词、情感倾向等信息。用户可以使用自然语言自定义抽取目标,无需训练即可统一抽取输入文本中的对应信息。实现开箱即用,并满足各类信息抽取需求。
命名实体识别(Named Entity Recognition,简称NER),是指识别文本中具有特定意义的实体。在开放域信息抽取中,抽取的类别没有限制,用户可以自己定义。
例如抽取的目标实体类型是"时间"、"选手"和"赛事名称", schema构造如下:
['时间', '选手', '赛事名称']
调用示例:
在”for_uie.py“文件中添加以下代码:
- from pprint import pprint
- from paddlenlp import Taskflow
- schema = ['时间', '选手', '赛事名称'] # Define the schema for entity extraction
- ie = Taskflow('information_extraction', schema=schema)
- pprint(ie("2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!")) # Better print results using pprint
运行”for_uie.py“文件,输出结果如下图所示:
例如抽取的目标实体类型是"肿瘤的大小"、"肿瘤的个数"、"肝癌级别"和"脉管内癌栓分级", schema构造如下:
['肿瘤的大小', '肿瘤的个数', '肝癌级别', '脉管内癌栓分级']
在上例中我们已经实例化了一个Taskflow对象,这里可以通过set_schema方法重置抽取目标。
调用示例:
继续在”for_uie.py“文件中添加以下代码:
- schema = ['肿瘤的大小', '肿瘤的个数', '肝癌级别', '脉管内癌栓分级']
- ie.set_schema(schema)
- pprint(ie("(右肝肿瘤)肝细胞性肝癌(II-III级,梁索型和假腺管型),肿瘤包膜不完整,紧邻肝被膜,侵及周围肝组织,未见脉管内癌栓(MVI分级:M0级)及卫星子灶形成。(肿物1个,大小4.2×4.0×2.8cm)。"))
运行”for_uie.py“文件,输出结果如下图所示:
例如抽取的目标实体类型是"person"和"organization",schema构造如下:
['person', 'organization']
英文模型调用示例:
将”for_uie.py“文件中的代码替换为以下代码:
- from pprint import pprint
- from paddlenlp import Taskflow
- schema = ['Person', 'Organization']
- ie_en = Taskflow('information_extraction', schema=schema, model='uie-base-en')
- pprint(ie_en('In 1997, Steve was excited to become the CEO of Apple.'))
运行”for_uie.py“文件,输出结果如下图所示:
更多不同类型任务(关系抽取、事件抽取、评价观点抽取等)的示例请参见链接:https://gitcode.net/mirrors/paddlepaddle/paddlenlp/-/blob/develop/model_zoo/uie/README.md
对于简单的抽取目标可以直接使用paddlenlp.Taskflow实现零样本(zero-shot)抽取,对于细分场景推荐使用轻定制功能(标注少量数据进行模型微调)以进一步提升效果。本项目从非结构化数据中抽取‘水稻病症状’实体,就需要进行定制训练,标注少量的数据微调模型。
百度提供的paddlenlp源代码链接如下:https://gitcode.net/mirrors/paddlepaddle/paddlenlp,打开链接,页面如下图所示。paddlenlp库的更新速度非常快,点击”develop“,在下拉页表中可以看到已经有很多个版本,本项目使用的UIE源代码来自于”release/2.4“版本。选中”release/2.4“,点击右侧的”克隆“下载.zip格式的压缩包。
下载后的压缩包名称为”PaddleNLP-release-2.4.zip“,解压后,找到PaddleNLP-release-2.4/model_zoo/目录下的uie/目录,将uie/目录下的utils.py、model.py、doccano.py、finetune.py、evaluate.py文件上传到实验环境中。
若下载源代码遇到问题,也可以直接从‘资料’中下载uie.zip,上传到实验环境中并解压,uie的目录结构如下:
每个文件的作用说明如下:
推荐使用数据标注平台doccano 进行数据标注,uie项目中打通了从标注到训练的通道,即doccano导出数据后可通过doccano.py脚本轻松将数据转换为输入模型时需要的形式,实现无缝衔接。
在接下来的任务中,就使用doccano工具对收集到的水稻疾病数据进行标注。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。