小飞侠 - 2022年8月
type: channel
link: http://www.kexue.love/index.php/2022/08/
description: 爱科学-刘磊
items: 医疗知识图谱|问答系统
items: FLAT论文详解
items: pip常用命令
items: NER综述
items: R-Drop算法
items: 信息熵、交叉熵、相对熵、条件熵

医疗知识图谱|问答系统
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.知识图谱实体类型实体类型中文含义实体数量举…

FLAT论文详解
type: item
date: 2022-08-17T09:28:00+00:00
description: FLAT主要创新点在于：(1)基于Transformer设计了一种巧妙position encoding来融合Lattice结构，可以无损的引入词汇信息。(2)基于Transformer融合了词汇信息的动态结构，支持并行化计算，可以大幅提升推断速度。一、背景ACL2020中一篇来自复旦大学邱锡鹏老师团队的 FLAT: Chinese NER Using Flat-Lattice Transformer 刷新了中文NER任务的新SOTA。论文链接：https://arxiv.org/pdf/2004.11795.pdf开源代码：https://github.com/LeeSureman/Flat-Lattice-Transformer二、

pip常用命令
type: item
date: 2022-08-11T01:36:00+00:00
description: 一、查看通过pip库版本1.查看已经安装的所有库版本pip list2.查看已经安装的某个库版本pip show paddlenlp3.查看将要安装的某个库版本pip index versions [your python module name] 例如： pip index versions paddlenlp 或者 pip install paddlenlp== 二、pip离线安装一个包1.离线下载#pip download 你的包名 -d "下载的路径(windows下双引号来表示文件夹)" pip download paddlenlp -d pipDownloadTest2.离线安装# 模块有依赖包的把所有包放在一个文件夹下，执行以下命令安装 pip install --no-index --find-link=./pipDownloadTest paddlenlp三、pip离线安装多个包1.制作requirement.txt此处制作requirement只是为了测试，pip freeze命令可将已安装的模块列表打印出来。实际应用中只需把要安装的包及版本信息写入一个文本文件。后续用写入pip包的文本文件代替后续命令中的requirement.txt文件。pip freeze > requirement.txt2.离线下载pip download -d offline_packages -r requirements.txt #批量下载 pip download -d offline_packages [package_name] #单个包下载 3.离线安装pip install --no-index --find-links=./offline_packages/ -r requirements.txt #批量安装 pip install --no-index --find-links=./offline_packages/ [package_name] #单个包安装四、修改源1.临时修改pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/ 2.永久修改

NER综述
type: item
date: 2022-08-08T09:41:00+00:00
description: 一、NER任务分类NER任务分成三大类[...]

R-Drop算法
type: item
date: 2022-08-04T09:54:00+00:00
description: r-drop本质上是一种有监督的数据增强方式SimCse本质上是一种无监督的数据增强方式对比学习标准流程：对比学习的标准流程是同一个样本通过不同的数据扩增手段得到的结果视为正样本对，而 batch 内的所有其他样本视为负样本，然后就是通过 loss 来缩小正样本的距离、拉大负样本的距离了。一、相关背景关注 NLP 新进展的读者，想必对2021年4月份发布的 SimCSE印象颇深，它通过简单的“Dropout 两次”来构造正样本进行对比学习，达到了无监督语义相似度任务的全面 SOTA。无独有偶，最近2021年6月份的论文《R-Drop: Regularized Dropout for Neural Networks》提出了 R-Drop，它将“Dropout两次”的思想用到了有监督任务中，每个实验结果几乎都取得了明显的提升。此外，笔者在自己的实验还发现，它在半监督任务上也能有不俗的表现论文标题：R-Drop: Regularized Dropout for Neural Networks论文链接：https://arxiv.org/abs/2106.14448代码链接：https://github.com/dropreg/R-Drop所以难度主要集中在数据扩增手段上。对于 NLP 来说，我们很难人工构建保证语义不变的数据扩增，所以 SimCSE 干脆不人工进行数据扩增，而是通过“Dropout 两次”的方式来得到同一个输入的不同特征向量，并将它们视为正样本对。奇怪的是，这个简单的“Dropout 两次”构造正样本，看上去是一种“无可奈何”的妥协选择，但消融实验却发现它几乎优于所有其他数据扩增方法，令人惊讶之余又让人感叹“大道至简”。在实现上，SimCSE 也相当简单，所谓“Dropout 两次”，只需要将样本重复地输入到模型，然后计算相应的 loss 就行了，如上图所示。由于 Dropout 本身的随机性，每个样本的 Dropout 模式都是不一样的，所以只要单纯地重复样本，就可以实现“Dropout 两次”的效果。二、算法结构从结果上来看，SimCSE 就是希望 Dropout对模型结果不会有太大影响，也就是模型输出对 Dropout 是鲁棒的。所以很明显，“Dropout 两次”这种思想是可以推广到一般任务的，这就是 R-Drop（Regularized Dropout）。1.损失函数损失函数由两部分组成：常规的交叉熵损失函数+KL散度约束的相对熵参考：https://mp.weixin.qq.com/s/IvhGbFEMotpKJIUPExUklg

信息熵、交叉熵、相对熵、条件熵
type: item
date: 2022-08-01T10:47:00+00:00
description: 信息熵完美编码交叉熵不完美编码相对熵是两者的差值，交叉熵减去信息熵。差值即差异，也即KL散度[...]