自然语言处理
文章平均质量分 88
满腹的小不甘
这个作者很懒,什么都没留下…
展开
-
《An Attentive Survey of Attention Models》注意力机制的最新综述解读
目录Abstract1. Instroduction2. Attention Model 3.Taxonomy of Attention 注意力机制的分类3.1 Number of sequences 3.2 Number of abstraction levels3.3 Number of p...原创 2019-04-18 15:38:36 · 6133 阅读 · 2 评论 -
Attention的本质:从Encoder-Decoder(Seq2Seq)理解
目录1. 前言2. Encoder-Decoder(Seq2Seq)框架3. Attention原理3.1 Soft Attention介绍4. Attention机制的本质思想5. 总结1. 前言 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理、语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影。所以,了...原创 2019-04-25 10:37:21 · 1737 阅读 · 1 评论 -
论文《Attention Is All You Need》及Transformer模型
目录1. Introduction2. 模型结构 2.1Transformer模型2.2 输入层2.3 位置向量:给单词赋予上下文语境2.4 注意力机制2.4.1 Self-attention 和 Encoder-Decoder attention2.4.2 Scaled Dot-Product Attention...原创 2019-09-06 11:12:43 · 771 阅读 · 0 评论 -
预训练模型:BERT深度解析《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
目录1. 背景2. 什么是 Bert ?3. 论文内容《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》:3.1 第一个步骤——任务1: Masked LM3.2 第二个步骤——任务2:下一句预测4. BERT模型对NLP的影响5. 其他模型5.1 EL...原创 2019-04-18 10:25:47 · 2746 阅读 · 0 评论 -
关系抽取(二)远程监督方法总结
关系抽取:远程监督方式介绍及三种实现方式原创 2022-11-29 17:06:21 · 2087 阅读 · 0 评论 -
关系抽取(一)
关系抽取概述原创 2022-11-29 18:07:20 · 1852 阅读 · 1 评论 -
BERT 是如何分词的
BERT分词方式转载 2022-10-28 14:35:52 · 764 阅读 · 0 评论 -
损失函数:交叉熵 & Label Smoothing标签平滑
参考:(23条消息) Label Smoothing标签平滑详解+Pytorch保姆级实际操作_狗狗狗大王的博客-CSDN博客_标签平滑参数https://blog.csdn.net/weixin_41811314/article/details/115863126(22条消息) Pytorch:交叉熵损失(CrossEntropyLoss)以及标签平滑(LabelSmoothing)的实现_我是大黄同学呀的博客-CSDN博客_标签平滑交叉熵https://blog.csdn.net/qq_3656原创 2022-05-03 16:44:10 · 1768 阅读 · 0 评论 -
自然语言理解难在哪儿?
原文:自然语言理解难在哪儿? - 知乎1. 本质和关键自然语言理解任务的本质是结构预测,关键则是对语言单元的语义表示能力。1.1 自然语言理解本质是结构预测自然语言文本是典型的无结构数据,由语言符号(如汉字)序列构成。要实现对自然语言的表意的理解,需要建立对该无结构文本背后的语义结构的预测。因此,自然语言理解的众多任务,包括并不限于中文分词、词性标注、命名实体识别、共指消解、句法分析、语义角色标注等,都是在对文本序列背后特定语义结构进行预测。例如,中文分词就是在原本没有空格分...原创 2022-03-16 13:02:33 · 1196 阅读 · 0 评论 -
jieba分词实现原理(C++版 + python篇)(二)
jieba分词_满腹的小不甘-CSDN博客地址:https://github.com/fxsjy/jieba特点支持四种分词模式:精确模式:试图将句子最精确地切开,适合文本分析;全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。paddle模式:利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddl原创 2021-12-06 20:51:54 · 695 阅读 · 0 评论 -
NLP语料、数据集
医疗NLP领域 https://github.com/lrs1353281004/Chinese_medical_NLP 为中文自然语言处理领域发展贡献语料 来自 <https://github.com/brightmart/nlp_chinese_corpus> 1.维基百科(wiki2019zh),100万个结构良好的中文词条 2.新闻语料(news2016zh),250万篇新闻,含关键词、描述 3.百科问答(baike2...原创 2021-10-12 17:20:04 · 982 阅读 · 0 评论 -
NER数据增强、badcase处理、数据优化
如何修正NLP问题的bad case NLP.TM | 近期做NER的反思在NLP层面思考数据量不足(冷启动)的问题,数据增强其实是一个还不错的策略。调整词句顺序。短句用词维度,长句可以n-gram或者是句子级别的调换顺序。 对NER,可以把特定槽位里面的词替换为其他同类型的词,当然文本分类也可以这么做。(收益大) 总结规则模板,直接生成数据。(收益不小) 复制粘贴。(数据量少时收益不明显,数据量大以后有少量收益) 复制粘贴也是有技巧的,例如拿一些比较差的bad case的特色case生成纠原创 2021-07-16 17:47:54 · 1785 阅读 · 0 评论 -
CRFsuite:CRF 工具包及sklearn-crfsuite
参考CRFsuite官网地址:CRFsuite:A fast implementation of Conditional Random Fields (CRFs) CRFsuite的Github地址为:https://github.com/chokkan/crfsuite CRFsuite官网教程:CRFsuite - Tutorial on Chunking Task sklearn-crfsuite:https://zhuanlan.zhihu.com/p/74408364...原创 2021-07-06 14:42:04 · 2538 阅读 · 0 评论 -
CRF++:一个 CRF 工具包
训练:CRF++: Yet Another CRF Tool KitCopyright(C) 2005 Taku Kudo, All rights reserved.reading training data: 100.. 200.. 300.. 400.. 500.. 600.. 700.. 800.. Done! 1.94 sNumber of sentences: 823Number of features: 1075862Number of thread(s): 1Fre原创 2021-06-15 12:44:35 · 472 阅读 · 0 评论 -
DIET:Dual Intent and Entity Transformer
学习资料:https://blog.rasa.com/introducing-dual-intent-and-entity-transformer-diet-state-of-the-art-performance-on-a-lightweight-architecture/ https://www.youtube.com/watch?v=vWStcJDuOUk&list=PL75e0qA87dlG-za8eLI6t0_Pbxafk-cxb https://www.youtube.com/w转载 2021-02-20 17:22:40 · 1785 阅读 · 0 评论 -
tokenizers in Transformers:BPE、WordPiece,SentencePiece
目录1. space、punctuation、rule-based tokenization2. Subword tokenization2.1 Byte-Pair Encoding (BPE)Byte-level BPE2.2 WordPiece2.3 Unigram2.4 SentencePiece:ALBERT,XLNet,Marian和T5tokenizing a text是将文本分为words或subwords,然后通过look-up table将其转换为ID。我们原创 2021-01-30 14:06:56 · 4185 阅读 · 2 评论 -
句法分析:依存分析(Dependency Parsing)
句法分析(syntactic parsing)是自然语言处理中的关键技术之一,它是对输入的文本句子进行分析以得到句子的句法结构的处理过程。对句法结构进行分析,一方面是语言理解的自身需求,句法分析是语言理解的重要一环,另一方面也为其它自然语言处理任务提供支持。例如句法驱动的统计机器翻译需要对源语言或目标语言(或者同时两种语言)进行句法分析;语义分析通常以句法分析的输出结果作为输入以便获得更多的指示信息。句法分析任务分类根据句法结构的表示形式不同,最常见的句法分析任务可以分为以下三种: 句法结构分转载 2020-12-16 10:11:05 · 16419 阅读 · 0 评论 -
语言模型常用评价方法:perplexity、bleu
1. perplexity(困惑度、复杂度)语言模型效果好坏的常用评价指标是perplexity,简单说,perplexity值刻画的是语言模型预测一个语言样本的能力。在一个测试集上得到的perplexity值越低,说明建模效果越好。计算公式如下: 其中,为word数量在语言模型的训练中,通常使用perplexity的对数形式:将每个位置上的概率取对数再平均 对数使用加法的形式,可以加速...原创 2020-12-10 15:27:54 · 13700 阅读 · 1 评论 -
seq2seq编码器和解码器:TensorFlow实现
seq2seq编码器和解码器1. 什么是seq2seq 2. 编码器 3. 解码器 4. 训练模型 5. seq2seq模型预测 5.1 贪婪搜索 5.2 穷举搜索 5.3 束搜索 6. Bleu得分 7. 代码实现 8. 参考文献参考:https://blog.csdn.net/weixin_41510260/article/details/100152626Tensorflow中的Seq2Seq全家桶1. Teacher Forcing 3. Beam Se.原创 2020-11-20 10:53:55 · 389 阅读 · 0 评论 -
自编码器(AE)
自编码器可以理解为一个试图去还原其原始输入的系统,如下图所示,虚线蓝色框内就是一个自编码器模型,它由编码器(Encoder)和解码器(Decoder)两部分组成,本质上都是对输入信号做某种变换。对于自编码器,我们往往并不关系输出是啥(反正只是复现输入),我们真正关心的是中间层的编码,或者说是从输入到编码的映射。可以这么想,在我们强迫编码y和输入x不同的情况下,系统还能够去复原原始信号x,那么说明编码y已经承载了原始数据的所有信息,但以一种不同的形式!这就是特征提取啊,而且是自动学出来的!实际上,自动原创 2020-11-11 08:50:04 · 2693 阅读 · 1 评论 -
gensim
核心概念 Document: some text. Corpus: a collection of documents. Vector: a mathematically convenient representation of a document. Model: an algorithm for transforming vectors from one representation to another. Document在Gensim中,Document是转载 2020-09-08 22:30:13 · 586 阅读 · 0 评论 -
jieba分词(python使用篇)(一)
地址:https://github.com/fxsjy/jieba特点支持四种分词模式: 精确模式:试图将句子最精确地切开,适合文本分析; 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 paddle模式:利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny原创 2020-09-08 09:22:23 · 908 阅读 · 1 评论 -
关键词提取算法
来源:《Python自然语言处理实战:核心技术与算法》1.TF-IDFTF-IDF从词频、逆文档频次两个角度对词的重要性进行衡量,可以根据tf-idf值由大到小排序取前n个作为关键词。 传统的TF-IDF算法中,仅考虑了词的两个统计信息(出现频次、在多少个文档出现),因此,其对文本的信息利用程度显然也是很少的。除了上面的信息外,在一个文本中还有许多信息能对关键词的提取起到很好的指导作用,例如每个词的词性、出现的位置...原创 2020-09-04 15:06:21 · 2404 阅读 · 0 评论 -
pLSA概率潜在语义分析
概率潜在语义分析(PLSA)李航《统计学习方法》:习题代码实现pLSA用于主题模型:实例 PLSA introduction:http://blog.tomtung.com/2011/10/plsa原创 2020-08-17 11:35:46 · 245 阅读 · 0 评论 -
EM算法详解
参考:【1】EM算法详解:实例【2】EM算法原理总结 - 刘建平Pinard - 博客园转载 2020-07-21 15:02:46 · 1424 阅读 · 0 评论 -
文本查重:difflib.SequenceMatcher
参考:SequenceMatcher in Python difflibSequenceMatcher的基本思想是找到不包含“垃圾”元素的最长连续匹配子序列(LCS)。这不会产生最小的编辑序列,但是会产生对人“看起来正确”的匹配。原创 2020-05-11 15:53:49 · 11368 阅读 · 1 评论 -
膨胀卷积(Dilated convolution)
Dilated conv,中文叫做空洞卷积或者扩张卷积,起源于语义分割,大部分文章也用于语义分割,具体能否对其他应用有价值姑且还不知道,但确实是一个不错的探究方向。感受野(receptive field):CNN中,某一层输出结果中一个元素所对应的输入层的区域大小,感受野是卷积核在图像上看到的大小,例如3×3卷积核的感受野大小为9。越大的感受野包含越多的上下文关系。膨胀卷积与普通的卷积相比...原创 2019-11-18 22:32:22 · 40499 阅读 · 4 评论 -
几种NER模型
1. BiLSTM-CRF1.1 模型 对于一个中文句子,这个句子中的每个字符都有一个属于集合{O,B-PER,I-PER,B-LOC,I-LOC,B-ORG,I-ORG}的标记。第一层,look-up layer,旨在将每个字符表示从一个one-hot向量转换为character embedding字符...原创 2019-11-16 22:29:49 · 5157 阅读 · 0 评论 -
命名实体识别NER & 如何使用BERT实现
目录1、NER 简介2. NER方法2.1 传统机器学习方法:HMM和CRF 2.2 LSTM+CRF:BiLSTM-CRF2.3 CNN+CRF:IDCNN-CRF2.4BERT+(LSTM)+CRF:BERT实现(1)获取BERT预训练模型(2)修改 数据预处理代码:DataProcessor(3)构建模型:create_model(4) 模...原创 2019-11-14 11:00:28 · 18238 阅读 · 2 评论 -
CRF 条件随机场
目录1. 基本概念 1.1 各种随机场1.2 CRF模型的训练原理1.3 条件随机场的参数化形式1.4条件随机场对应的简化概率表达2. 例子定义CRF中的特征函数从特征函数到概率CRF与逻辑回归的比较CRF与HMM的比较HMM和CRF区别3. Tensorflow实现 tf.contrib.crf(1)tf.contrib.......原创 2019-11-13 21:22:42 · 5384 阅读 · 0 评论 -
BERT:代码解读、实体关系抽取实战
目录前言 一、BERT的主要亮点1. 双向Transformers2.句子级别的应用3.能够解决的任务二、BERT代码解读1. 数据预处理1.1 InputExample类1.2 InputFeatures类1.3 DataProcessor 重点1.4 convert_single_example1.5 file_based_conver...转载 2019-10-31 10:46:03 · 9954 阅读 · 2 评论 -
自然语言处理库——Gensim之Word2vec
Gensim(http://pypi.python.org/pypi/gensim)是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。 主要用于主题建模和文档相似性处理,它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法。Gensim在诸如获取单词的词向量等任务中非常有用。1. gensim概...原创 2019-05-09 11:54:38 · 33780 阅读 · 4 评论 -
文本挖掘预处理流程总结(1)— 中文
目录1. 中文文本挖掘预处理特点2.中文文本挖掘预处理2.1 预处理一:数据收集2.2 预处理二:除去数据中非文本部分2.3 预处理三:处理中文编码问题2.4预处理四:中文分词2.5 预处理五:引入停用词2.6 预处理六:特征处理2.7 预处理七:建立分析模型3. 中文文本挖掘预处理总结 在对文本做数据分析时,我们一大半的时间都会花在...原创 2019-05-14 12:35:13 · 2615 阅读 · 0 评论 -
自然语言处理库——NLTK
NLTK(www.nltk.org)是在处理预料库、分类文本、分析语言结构等多项操作中最长遇到的包。其收集的大量公开数据集、模型上提供了全面、易用的接口,涵盖了分词、词性标注(Part-Of-Speech tag, POS-tag)、命名实体识别(Named Entity Recognition, NER)、句法分析(Syntactic Parse)等各项 NLP 领域的功能。...原创 2019-05-09 13:54:09 · 5478 阅读 · 0 评论 -
word2vec原理(二):基于Hierarchical Softmax的模型
在word2vec原理(一) CBOW与Skip-Gram模型基础中,说到了使用神经网络的方法来得到词向量语言模型的原理和一些问题,现在开始关注word2vec的语言模型如何改进传统的神经网络的方法。由于word2vec有两种改进方法,一种是基于Hierarchical Softmax的,另一种是基于Negative Sampling的。本文关注于基于Hierarchical S...原创 2019-05-14 10:20:06 · 1677 阅读 · 0 评论 -
word2vec原理(三): 基于Negative Sampling的模型
目录1.Hierarchical Softmax的缺点与改进2. Negative Sampling(负采样)概述3.基于Negative Sampling的模型梯度计算4.Negative Sampling负采样方法 5.基于Negative Sampling的CBOW模型6.基于Negative Sampling的Skip-Gram模型7. ...原创 2019-05-13 22:58:48 · 1485 阅读 · 0 评论 -
Word2vec基础之霍夫曼树
word2vec使用了CBOW与Skip-Gram来训练模型与得到词向量,但是并没有使用传统的DNN模型。最先优化使用的数据结构是用霍夫曼树来代替隐藏层和输出层的神经元,即霍夫曼树的: 叶子节点:起到输出层神经元的作用,叶子节点的个数即为词汇表的小大。 内部节点:起到隐藏层神经元的作用。霍夫曼树的建立过程如下:输入:权值为(w1,w2...原创 2019-05-13 22:29:43 · 2637 阅读 · 0 评论 -
文本挖掘预处理流程总结(2)— 英文
目录1.英文文本挖掘预处理特点2.英文文本挖掘预处理2.1 预处理一:数据收集2.2 预处理二:除去数据中非文本部分2.3 预处理三:拼写检查更正2.4 预处理四:词干提取(stemming)和词形还原(lemmatization)2.5 预处理五:转化为小写2.6 预处理六:引入停用词2.7 预处理七:特征处理2.8 预处理八:建立分析模型...原创 2019-05-14 12:38:15 · 708 阅读 · 0 评论 -
自然语言处理库——TextBlob
TextBlob(https://textblob.readthedocs.io/en/dev/index.html)是一个用于处理文本数据的Python库。它提供一个简单的API,可用于深入研究常见的NLP任务,如词性标注、名词短语提取、情感分析、文本翻译、分类等。官方文档:https://textblob.readthedocs.io/en/dev/目录1. 情感分...原创 2019-05-09 15:24:22 · 6473 阅读 · 1 评论 -
文本挖掘预处理:向量化与Hash Trick
1. 向量化 1.1 概念 词袋模型在分词之后,通过统计每个词在文本中出现的次数,就可以得到该文本基于词的特征,如果将各个文本样本的这些词与对应的词频放在一起,就是我们常说的向量化。向量化完毕后一般也会使用TF-IDF进行特征的权重修正,再将特征进行标准化。 再进行一些其他的特征工程后,就可以将数据带入机器学习算法进行分类聚类了。 在词袋模型的统计词频这一步,会...原创 2019-05-20 15:42:04 · 608 阅读 · 0 评论