NLP | 2019-03-21 NLP系列 英文文本处理与spaCyspaCy是Python和Cython中的高级自然语言处理库,它建立在最新的研究基础之上,从一开始就设计用于实际产品。spaCy 带有预 ...
NLP | 2019-03-21 NLP系列 中文文本基本任务与处理1.分词对于中文和日文这样的特殊亚洲语系文本而言,字和字之间是紧密相连的,单纯从文本形态上无法区分具备独立含义的词(拉丁语系纯天然由空格分隔不同的word),而不同的词以不同的方式排布,可以表达不同的内容和情感,因此在很多中文任务中,我们需要做的第一个处理叫做分词。 这是一个非常基础的功能,但是会较大程度影响下游任务(机器翻译、情感分析、文本理解)的效果。 目前主流的分词方法主要是基于词典匹配的分词方法(正向最大匹配法、逆向最大匹配法和双向匹配分词法等) ...
NLP | 2019-03-21 NLP系列 文本表示进阶1. 预训练在图像领域的应用 参考文章:《从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史》 自从深度学习火起来后,预训练过程就是做图像或者视频领域的一种比较常规的做法,有比较长的历史了,而且这种做法很有效,能明显促进应用的效果。 那么图像领域怎么做预训练呢,上图展示了这个过程,我们设计好网络结构以后,对于图像来说一般是CNN的多层叠加网络结构,可以先用某个训练集合比如训练集合A或者训练集合B对这个网络进行预先训练,在A任务上或者 ...
NLP | 2019-03-21 NLP系列 朴素贝叶斯模型与中文文本分类 参考文章:《朴素贝叶斯模型与中文文本分类》 1. 引言贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来。因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口。 2. 贝叶斯公式贝叶斯公式就一行: $P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)} $ 而它其实是由以下的联合概率公式推导出来: $P(Y,X) = P(Y|X)P(X)= ...
NLP | 2019-03-21 NLP系列 文本主题抽取与表示基于tf-idf与text-rank的主题词抽取基于 TF-IDF 算法的关键词抽取import jieba.analyse jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=()) sentence 为待提取的文本 topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20 withWeight 为是否一并返回关键词权重值,默认值为 False al ...
NLP | 2019-03-21 NLP系列 facebook fasttext原理与操作 参考文章:《FastText原理总结》 1、应用场景fastText是一种Facebook AI Research在16年开源的一个文本分类器。 其特点就是fast。相对于其它文本分类模型,如SVM,Logistic Regression和neural network等模型,fastText在保持分类效果的同时,大大缩短了训练时间。 2、优缺点 适合大型数据+高效的训练速度:能够训练模型“在使用标准多核CPU的情况下10分钟内处 ...
NLP | 2019-03-21 NLP系列 基于fasttext的文本情感分析1import fastText 12345678910111213141516171819import re #正则表达式from bs4 import BeautifulSoup #html标签处理import pandas as pddef review_to_wordlist(review): ''' 把IMDB的评论转成词序列 ''' # 去掉HTML标签,拿到内容 review_text = Be ...
NLP | 2019-03-21 NLP系列 python中文新闻分类 参考代码:【NLP文本分类】各种文本分类算法集锦,从入门到精通 参考代码:NLP系列(4)_朴素贝叶斯实战与进阶 123456789101112import re import pickleimport randomfrom sklearn.svm import SVCfrom sklearn import preprocessing, decomposition, model_selection, metrics, pipelinefrom s ...
NLP | 2019-03-21 NLP系列 词嵌入与fine-tuning很多高阶的深度学习自然语言处理任务,都可以用词向量作为基础。我们课程的很多任务,可以用预训练好的word2vec初始化,接下来进行fine-tuning。如本章的文本分类。其基本思路是将离散的词嵌入到连续的空间中,并以此作为词的表示输入到下层的任务中去。 如何使用? 从头训练 就像word2vec一样, 这一层是可学习的, 用随机数initialize , 通过BP去调整. pre-trained + fine tuning 用其他网络( ...
NLP | 2019-03-21 NLP系列 使用TensorFlow构建卷积神经网络完成新闻分类1234567891011121314# 数据预处理import jiebaimport pandas as pddf_cnews =pd.read_csv("./data/cnews.train.txt",sep="\t",names=['category','cnews'], encoding='utf-8')df_cnews = df_cnews.dropna()ty = df_cnews[df_cnews.categ ...