![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
自然语言处理
文章平均质量分 87
nlp相关学习和代码
shun-ripking
个人博客网站:ripshun.com
展开
-
【论文解读】A Frustratingly Easy Approach for Entity and Relation Extraction
Abstract 对于实体识别和关系抽取的联合任务,大多数使用结构化预测模型或共享参数。 而作者使用一个简单的流水线模型实现。方法使用两个独立的编码器,关系抽取的输入仅仅是实体识别的结果。 通过实验,验证了学习实体和关系的不同上下文表示、融合关系模型中的实体信息和整合全局上下文的重要性。(也就是说在关系模型中加入实体信息的重要性) 最后,提出了一个有效的近似方法,它只需要在推理时通过实体和关系编码器,实现8-16倍的加速,而精度略有降低 Introduction原创 2021-07-12 11:19:59 · 3001 阅读 · 0 评论 -
【知识图谱】哈工大ltp工具包的安装和使用
LTP(Language Technology Platform) 提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。官方教程:https://github.com/HIT-SCIR/ltp/blob/master/docs/quickstart.rst官方文档:http://ltp.ai/docs/appendix.html安装与pyltp不同,ltp4无需安装繁琐的vc环境,也不用考虑python版本对轮子兼容的问题。pip insta.原创 2021-03-25 11:00:36 · 12356 阅读 · 26 评论 -
【知识图谱学习】知识图谱搭建医疗问答系统
通过知识图谱我们可以构建一个简单的医疗问答系统。在问答过程中可以方便的检索问题。GitHub:https://github.com/cshmzin/zstp-project/tree/main/%E5%8C%BB%E7%96%97%E6%9C%BA%E5%99%A8%E4%BA%BA实验环境neo4j数据库py_aho_corasick模块简介数据提取模块(从互联网获取数据)知识图谱数据库构建模块(将数据清洗构建知识图谱)节点匹配模块(匹配节点获取关系)问题匹配模块(匹配问题构建查.原创 2021-03-23 18:41:12 · 1290 阅读 · 0 评论 -
【知识图谱学习】Neo4j与python实验测试
安装py2neo为了让python与Neo4j相连,需要安装python中的py2neo库:pip3 install py2neo开始实验测试本次实验测试主要建立一个有关(购买方,价格,销售方)3元关系的数据库,数据库存储在表格之中。如图所示:提取数据首先我们需要将表格中的数据提取出来:class Datas(): def __init__(self): self.path = 'Invoice_data_De...原创 2021-03-22 19:48:29 · 367 阅读 · 1 评论 -
【知识图谱学习】Neo4j数据库实战
Neo4j简介:Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中。但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。.原创 2021-03-22 19:47:11 · 465 阅读 · 0 评论 -
【知识图谱学习】知识图谱介绍及其应用
【知识图谱学习】知识图谱介绍及其应用知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。知识图谱,是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。总而言之,原创 2021-03-22 19:42:33 · 820 阅读 · 1 评论 -
【论文解读】NER任务中的MRC(机器阅读理解)
论文:https://arxiv.org/pdf/1910.11476v6.pdf前沿:在之前的NER任务中常常分为两种:nested NER和 flat NER。从直观的角度来看,nested NER考虑到了实体嵌套问题。发展:flat NER的任务通常形式化为序列标记任务:序列标记模型,但是这种序列标记的模型无法考虑到实体嵌入关系问题。如中国移动是一个公司实体,而中国是一个国家实体,在flat NER中可能只能提取出中国移动整体却忽视了中国这个部分。考虑到这个问题后,.原创 2020-11-30 16:49:11 · 2834 阅读 · 0 评论 -
Word2vec And Doc2vec - 文本向量化
word2vec 与 doc2vec的区别:两者从字面意思上就可以大致判断出区别来,word2vec主要针对与单词,而doc2vec主要针对于文本:顾名思义,Word2Vec是在单个单词上训练的,而Doc2vec是在可变长度的文本上训练的,因此,每个模型可以完成的任务是不同的。使用Word2Vec,您可以根据上下文预测单词,反之则可使用Vera,而使用Doc2vec则可以测量完整文档之间的关系。概述:文本向量化是自然语言处理中的基础工作,文本的表示直接影响到了整个自然语言处理.原创 2020-11-29 19:07:39 · 3886 阅读 · 0 评论 -
Simple to HMM and CRF
HMM(隐含马尔可夫模型)HMM参数中文分词为例:隐藏(状态)序列:词语的词性 States = {B,M,E,S}观察序列:每个词语(小明 ,去,学校,了)状态转移矩阵A,其中第i行j列表示状态i转移到状态j的概率(转移概率)状态序列到观察序列的分布矩阵B,即每个单词为某一次性的概率(发射概率)这个时候我们就完成了训练阶段的参数估计,得到了三个概率矩阵:TransProbMatrix: 转移概率矩阵(array_A)EmitProbMatrix: 发.原创 2020-11-29 19:06:54 · 151 阅读 · 0 评论 -
LSTM长短期记忆循环神经网络详解
一句话,有时候单独拎出来难以理解,而放在整篇文章中,我们则容易通过联系上下文理解。什么叫联系上下文理解,就是把前文信息联系结合到当前语句上,这也是RNN的关键。基本概念:维基百科RNN(Recurrent Neural Networks)Rnn本质是一个循环神经网络结构,将其展开,会得到一个序列结构,上一次的输出会作为下一次的输入(即前面的输入将会对后面的输入产生影响)。这种链式的特征揭示了 RNN 本质上和序列相关,因而很适合处理语音,文本,这种序列数据。基本概念:维基百科.原创 2020-11-29 19:06:17 · 1628 阅读 · 0 评论 -
GRU:Lstm的变体
在学习GRU之前应该先学习LSTM的原理,因为GRU就是Lstm的变体,而GRU以轻便简洁的优势应用于更多的场合。原论文GRU结构和LSTM不同,GRU主要由两个门组成:重置门,更新门。大概思路和LSTM相似,主要是将需要的信息获取,而舍弃不需要的信息。但GRU的结构更加简单,参数相比与LSTM要少很多。r用来重置,z用来更新(同样使用sigmoid激活函数):将重置分类r与h相乘与x拼接后得到重置的新信息~h:更新分类控制新信息中需.原创 2020-11-29 19:05:41 · 419 阅读 · 0 评论 -
seq2seq 和 attention:编码译码器与注意力机制
seq2seq简介Seq2seq将输入序列转换为输出序列。它通过利用循环神经网络(递归神经网络)或更常用的LSTM、GRU 网络来避免梯度消失问题。当前项的内容总来源于前一步的输出。Seq2seq主要由一个编码器和一个解码器。 编码器将输入转换为一个隐藏状态向量,其中包含输入项的内容。 解码器进行相反的过程,将向量转换成输出序列,并使用前一步的输出作为下一步的输入。维基百科:https://zh.wikipedia.org/zh-hans/Seq2seq通过最简单的.原创 2020-11-29 19:04:13 · 490 阅读 · 0 评论 -
【论文解读】Attention is All you need
地址:1706.03762v5.pdf (arxiv.org)abstrat作者在abstract中先是简述了一种传统的翻译模型:encoder and decoder + Attention注意力机制(回顾:Simple to seq2seq And attention | Ripshun Blog),然后引出了他们新的简单网络模型:Transformer,在实验中Transfromer有了很高的表现:28.4BLEU 在WMT2014 English to Germen4.原创 2020-11-29 19:02:58 · 586 阅读 · 0 评论 -
Pre-training in nlp
什么是预训练:AI 中的预训练是指使用一个任务训练模型,以帮助它形成可用于其他任务的参数,从而节约大量的时间和资源。(站在巨人的肩膀上解决问题)训练前的概念受到人类的启发。由于天生的能力,我们不必从零开始学习所有东西。相反,我们转移和重用我们过去学到的旧知识,以了解新知识并处理各种新任务。在人工智能中,训练前模仿人类处理新知识的方式。即:使用以前学习过的任务的模型参数初始化新任务的模型参数。这样,旧知识可帮助新模型从旧经验而不是从零开始成功执行新任务.nlp中的预训练发展过程:.原创 2020-11-29 19:01:54 · 187 阅读 · 0 评论 -
BERT:nlp领域跨时代的预训练模型
2018年是nlp重大改革的一年,bert的横空出世使得未来nlp的发展有利跨时代的进步,其在多个领域的完美成功使nlp研究方向有了很大的改变,一直到现在很多比赛的榜单都是由bert或者其畸形霸占。本文让我们简单了解bert,看看它是如何达到如此成就的。Bert:bert其实并没想象中的那么复杂,只要了解其中的几个知识点和两幅图便可以知晓它的原理和思想。而bert与其他网络之间也有很多参考和改变,详细见前篇博客:Pre-training in nlp | Ripshun Blog知.原创 2020-11-29 19:00:17 · 432 阅读 · 0 评论 -
BERT实战:实现多分类
前面以及介绍过bert的理论知识,以及它相应的实现方法,那么让我们通过实战加深对bert的了解。我们将通过bert实现一个文本多分类任务,具体是kaggle上的一个真假新闻的任务。具体如下:文件地址:https://www.kaggle.com/c/fake-news-pair-classification-challenge/data 模型形式:BERT + Linear Classifier参考链接:LeeMeng - 進擊的 BERT:NLP 界的巨人之力與遷移學習参考博客:Simple.原创 2020-11-30 16:50:05 · 6170 阅读 · 10 评论 -
BERT实战:中文命名实体识别
使用bert实现的一个NER10标签任务github:nlp-code/bert命名实体识别.ipynb at main · cshmzin/nlp-code (github.com)bert介绍博客:Simple to Bert | Ripshun Blog数据集来源:CLUE官网(细粒度NER任务)获取数据:# 获取数据import jsontrain_data = []dev_data = []test_data = []for line in open(.原创 2020-11-29 18:57:36 · 3548 阅读 · 3 评论