小飞侠 - 十二、知识图谱
type: channel
link: http://www.kexue.love/index.php/category/zstp/
items: UIE-基于统一结构生成的通用信息抽取
items: 基于知识图谱的信息抽取技术综述
items: 知识图谱抽取工具总结
items: 医疗知识图谱|问答系统

UIE-基于统一结构生成的通用信息抽取
type: item
date: 2022-11-06T02:49:04+00:00
description: SSISSI：结构化模式提示器SSI的本质一个基于schema的prompt机制，用于控制不同的生成需求：在Text前拼接上相应的Schema Prompt，输出相应的SEL结构语言。

基于知识图谱的信息抽取技术综述
type: item
date: 2022-10-27T03:24:00+00:00
description: 一、背景随着信息时代的到来, 数据呈爆发式的增长, 如何从这些数据中通过智能技术自动提取出真正有价值的信息尤为重要。知识图谱是一类知识表示, 由实体、关系以及属性构成。知识图谱的构建过程: 首先从数据源中提取出碎片化事实, 然后对碎片化事实进行知识的融合, 再经过知识加工后通过迭代更新建立基于知识的体系显然, 知识图谱的构建过程包括: 信息抽(information extraction), 知识融合, 知识加工等。信息抽取作为知识图谱的主要组成, 从数据源中抽取出实体和实体之间的关系等结构化信息包括对实体、关系以及事件等方面的抽取。1.面临的问题知识图谱中的信息抽取面对着 3 个挑战:(1).第一, 如何从需要构建知识图谱的领域语料中利用启发式的信息来发现语料中的隐含知识, 从而在较少的人工标注中获得较高的准确度。(2).第二, 如何解决已有知识图谱中部分不完整的实体、关系与事件信息所带来的噪声与语义漂移问题。(3).第三, 如何在开放领域中利用现有的标注或加上较少的标注实现知识图谱在新信息中的完善与更新。2.知识抽取的三个主要任务(1).实体识别(2).关系抽取(3).属性抽取二、实体识别1.定义命名实体识别 (named entity recognition, NER) 是实体抽取的别称。 命名实体能在具有相似属性的一组事物中清楚的标识出一个事物. 它可以理解为有文本标识的实体, 而实体 (entity) 是不依附于其他东西而存在的。2.方法归类NER三种识别方法(1)基于规则和字典的方法(2)基于机器学习-统计模型的方法(3)基于深度学习-神经网络的方法。近年来, 越来越多的研究者开始关注基于深度学习的NER方法.这三种方式的对比3.基于规则的方法基于规则的方法通过专家手工构建规则集，将文本等数据与规则集匹配来得到命名实体信息。该方法在处理小规模的知识图谱时精度较高，但是随着知识图谱规模的增大，规则构建困难，且由于规则基于人工构建，难以进行大规模扩展并应用于不同领域的知识图谱。4.基于机器学习-统计模型的方法基于统计模型的方法将NER作为序列标注问题，以完全或部分标注的语料进行模型训练。常见的统计模型有条件马尔可夫模型（Conditional Markov Model，CMM）、隐马尔可夫（Hidden Markov Model，H M M）、条 件 随 机 场（Conditional Random Fields，CRF）和最大熵（Maximum Entropy，ME）等。基于统计模型的方法在构建一个新的领域知识图谱时需要做的改动较少，通用性强。但是统计模型的状态搜索空间庞大、训练时间长，高度依赖特征选取和语料库，难以从海量数据中发现复杂且隐含的关键特征。5.基于深度学习-神经网络由于深度学习能够自动地从数据中学习复杂的隐藏特征，所需的领域专业知识和经验知识较少，基于神经网络的NER 已 成 为 目 前 主 流 方 法 ，主 要 模 型 有 卷 积 神 经 网 络（Convolutional Neural Network，CNN）和 循 环 神 经 网 络（Recurrent Neural Network，RNN）等。深度学习在实体抽取领域取得较好效果后, 研究人员开始在词汇级别上对其神经网络结构进行改进研究。1.早期深度学习模型模型偏重于词或字符的特征提取, 无法动态的表征上下文语境中的一词多义。主要有一下几种方式：(1) Lample 等人[16]通过加入 CRF 模块以优化标签序列输出, 提出了 BiLSTM-CRF 模型, 在语料库上取得了比较高的 F1 值(2) Ma等人[17]在双向 LSTM-CNNS结构上, 添加了 CRF 模块, 提出 BiLSTM-CNNs-CRF模型, 模型能同时利用词和字符级表示.(3) Luo等人[18]提出了一种 Att-BiLSTM-CRF 模型, 该模型用于文档级实体识别, 在数据集上取得的 F1 值为 91.14%.2.结合上下文语境或语义的模型(1)Devlin 等人[19] 提出了 BERT 模型, 该模型可以使上下文语境或语义中的词得到充分的表征.(2) Souza 等人[20]将 BERT-CRF 模型应用于葡萄牙 NER任务上, 获得了新的最佳 F1 值. (3)谢腾等人[21] 提出一种 BERT- BiLSTMCRF 模型, 该模型在两个语料库上进行实验, 得到的F1 值分别是 94.65% 和 95.67%.(4)百度推出了 ERNIE 模型[22], 该模型是通过加强 BERT的 masking 来获取知识. 实验表明, 在 5 项 NER 任务上, ERNIE 刷新了榜单. (5)微软提出了一种多任务的训练方式的 MT-DNN 模型[23], 该模型…

知识图谱抽取工具总结
type: item
date: 2022-10-20T07:26:00+00:00
description: 一、知识图谱构成1.需要抽取模型知识图谱的抽取一般需要三个模块：实体识别、属性抽取、关系抽取，有时候还有事件抽取。2.工具评测标准1.抽取模块是否齐全2.抽取准确率是否高3.抽取是否支持小样本学习4.是否支持标注工具二、抽取工具介绍1.UIE-百度(1)背景介绍官方地址1(paddle版本)：https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie官方地址2(pytorch版本)：https://github.com/heiheiyoyo/uie_pytorch论文地址：https://arxiv.org/pdf/2203.12277.pdf发布时间：2022年并持续维护升级(2)支持功能支持：实体识别、属性抽取、关系抽取、事件抽取、观点抽取、情感分类领域：支持跨领域语言：支持多语言(中英)多模型：大、中、小不同模型大小小样本：支持小样本学习其他：支持模型评测、部署(cpu/gpu)支持标注工具：https://github.com/heiheiyoyo/uie_pytorch/blob/main/doccano.md2.DeepKe:浙江大学(1)背景介绍官网：https://github.com/zjunlp/DeepKE/blob/main/README_CN.md论文：https://arxiv.org/abs/2201.03335发布时间：2022年并持续维护升级(2)支持功能支持：实体识别、属性抽取、关系抽取；不支持：事件抽取语言：支持多语言(中英)小样本：支持小样本学习3.OpenUE:浙江大学官网：https://github.com/zjunlp/OpenUE论文：https://aclanthology.org/2020.emnlp-demos.1.pdf发布时间：2020年，后续没有更新(2)支持功能支持：实体识别、属性抽取、关系抽取；不支持：事件抽取语言：支持多语言(中英)4.NeuralKG:浙江大学开源知识图谱表示学习工具官网地址：https://github.com/zjukg/NeuralKG/blob/main/README_CN.md支持多种方法：NeuralKG提供了对三类知识图谱嵌入方法的代码实现，包括传统知识图谱嵌入,基于图神经网络的知识图谱嵌入,以及基于规则的知识图谱嵌入发布时间：2022年并持续维护升级5.其他抽取工具-不推荐(时间较长，功能支持不全)(1)OpenEA: https://github.com/nju-websoft/OpenEA(2)OmniEvent: https://github.com/THU-KEG/OmniEvent综合比较和试验，百度UIE目前最合适三、抽取工具-UIE详解1. 模型简介UIE(Universal Information Extraction)：Yaojie Lu等人在ACL-2022中提出了通用信息抽取统一框架UIE。该框架实现了实体抽取、关系抽取、事件抽取、情感分析等任务的统一建模，并使得不同任务间具备良好的迁移和泛化能力。2.UIE版本(1)paddle版本：https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie(2)torch版本：https://github.com/heiheiyoyo/uie_pytorch3.UIE优势(1)使用简单：用户可以使用自然语言自定义抽取目标，无需训练即可统一抽取输入文本中的对应信息。实现开箱即用，并满足各类信息抽取需求。(2)降本增效：以往的信息抽取技术需要大量标注数据才能保证信息抽取的效果，为了提高开发过程中的开发效率，减少不必要的重复工作时间，开放域信息抽取可以实现零样本（zero-shot）或者少样本（few-shot）抽取，大幅度降低标注数据依赖，在降低成本的同时，还提升了效果。(3)效果领先：开放域信息抽取在多种场景，多种任务上，均有不俗的表现4.UIE支持功能1.实体抽取命名实体识别（Named Entity Recognition，简称NER），是指识别文本中具有特定意义的实体。在开放域信息抽取中，抽取的类别没有限制，用户可以自己定义。例如抽取的目标实体类型是"时间"、"选手"和"赛事名称", schema构造如下：['时间', '选手', '赛事名称']2.关系抽取关系抽取（Relation Extraction，简称RE），是指从文本中识别实体并抽取实体之间的语义关系，进而获取三元组信息，即<主体，谓语，客体>。例如以"竞赛名称"作为抽取主体，抽取关系类型为"主办方"、"承办方"和"已举办次数", schema构造如…

医疗知识图谱|问答系统
type: item
date: 2022-08-25T09:43:00+00:00
description: 一、相关竞品产品调研1.左手医生https://open.zuoshouyisheng.com/--优先2.百度灵医https://01.baidu.com/index.html (线上无法体验)3.科大迅飞-全科辅诊诊疗系统http://www.iflytek.com/health/qkfzzl (线上无法体验)4.阿里健康https://www.doctoryou.ai/dm5.腾讯https://tencentmiying.com/official/二、相关文章1.https://zhuanlan.zhihu.com/p/3792029492.https://zhuanlan.zhihu.com/p/59401605三、开源项目1.基于知识图谱和向量检索的医疗诊断问答系统https://github.com/wangle1218/KBQA-for-Diagnosis2.知识图谱问答https://github.com/wangle1218/QASystemOnMedicalKG3.医疗知识图谱问答https://github.com/LuoFanA595/Medical-Robot-AI四、baseline选型1.baseline参考源码：https://github.com/LuoFanA595/Medical-Robot-AI2.使用框架：rasa、官方网站：http://wwww.rasa.com3.技术架构选型：为多种问答系统的综合应用，包括：问答型、任务型、闲聊型，其中问答型包括：FAQ、KBQA(知识图谱)4.技术流程图：后期预期加入asr、tts模块五、对话系统环境配置1.baseline环境配置：知识图谱部分(1)如果是windows下直接参考git相关配置(2)一般都是linux下配置，部分内容需要修改#1.配置环境：创建所需环境: conda create -n 环境名 python=3.7 #激活环境: conda activate 环境名 #2.项目所需安装包已打包在requirements.txt中Terminal终端命令执行: pip install -r requirements.txt 即可安装(3)知识图谱数据库neo4j下载、安装、运行：1)下载：从官网：https://neo4j.com/download-center/#community 下载3.5.35版本(linux)。2）解压：下载完成后通过命令：tar -zxvf neo4j-community-3.5.35-unix.tar 解压3)启动：neo4j命令：./bin/neo4j start4)web访问：在浏览器中输入，默认端口7474http://localhost:7474/browser/显示如图则启动成功:5)结构化疾病数据入库：python build_medicalgraph.py注意修改代码中数据库账户和秘密，最终可视化效果：2.闲聊部分---这部分是基于理解自己添加的。(1)环境安装pip install paddlepaddle pip install paddlenlp pip install paddle(2)使用模型plato-mini六、代码运行与服务启动1.rasa后台服务启动(启动有先后顺序)#(1)运行rasa cors，作用对话状态跟踪，对话管理部分: nohup python3 -m rasa run -vv --cors "*" --port 5005 --endpoints endpoints.yml --credentials credentials.yml --debug >log1.log 2>&1 & #(2)运行 rasa action,行为管理： nohup python3 -m rasa run actions --port 5055 --actions actions --debug >log2.log 2>&1 & #(3)用端口将文件映射到本地: python -m http.server 8888 #(4)docker容器启动: docker run -p 8000:8000 rasa/duckling 2.前端接口修改修改路径：rasa_bot_front_dist-main/static/js/main.341de945.chunk.js修改ip地址：http://192.168.2.220:5055/webhooks/rest/webhook/ 将ip修改为rasa启动服务端地址之后，在浏览器打开rasa_bot_front_dist-main/index.html即可对话七、baseline知识图谱实现功能1.知识图谱实体类型实体类型中文含义实体数量举…