本文作为笔者NLP入门系列文章第一篇,以后我们就要步入NLP时代.   本文将会介绍NLP中常见的词袋模型(Bag of Words)以及如何利用词袋模型来计算句子间的相似度(余弦相似度,cosine similarity).   首先,让我们来看一下,什么是词袋模型.我们以下面两个简单句子为例: sent1 = "I love sky, I love sea." sent2 = "I like running, I love reading."   通常,NL…
分词(Tokenization) - NLP学习(1) N-grams模型.停顿词(stopwords)和标准化处理 - NLP学习(2)   之前我们都了解了如何对文本进行处理:(1)如用NLTK文本处理库将文本的句子成分分成了N-Gram模型,与此同时引入了正则表达式去除一些多余的句子成分:(2)将停顿词去除:(3)一些通用的标准化处理,如大小写.提取词干等.在这一节我们将看看如何对文本中的单词进行统计,并以此来查看一个单词在特定文档中或者整个文本集中的重要性.统计单词的任务是为了给特定的词…
要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 在之前的开篇提到了text2vec,笔者将其定义为R语言文本分析"No.1",她是一个文本分析的生态系统.笔者在学习之后发现开发者简直牛!基于分享精神,将自学笔记记录出来.开篇内容参考: 重磅︱R+NLP:text2vec包--New 文本分析生态系统 No.1(一,简介) 文档可以以多种方式表达,单独词组.n-grams…
(1)词集模型(Set Of Words): 单词构成的集合,集合自然每个元素都只有一个,也即词集中的每个单词都只有一个. (2)词袋模型(Bag Of Words): 如果一个单词在文档中出现不止一次,并统计其出现的次数(频数). 为文档生成对应的词集模型和词袋模型 考虑如下的文档: dataset = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], ['maybe', 'not', 'take', 'him', 'to…
TF-idf模型:TF表示的是词频:即这个词在一篇文档中出现的频率 idf表示的是逆文档频率, 即log(文档的个数/1+出现该词的文档个数)  可以看出出现该词的文档个数越小,表示这个词越稀有,在这篇文档中也是越重要的 TF-idf: 表示TF*idf, 即词频*逆文档频率 词袋模型不仅考虑了一个词的词频,同时考虑了这个词在整个语料库中的重要性 代码: 第一步:使用DataFrame格式处理数据,同时数组化数据 第二步:定义函数,进行分词和停用词的去除,并使用‘ ’连接去除停用词后的列表 第三…
函数说明: 1 CountVectorizer(ngram_range=(2, 2)) 进行字符串的前后组合,构造出新的词袋标签 参数说明:ngram_range=(2, 2) 表示选用2个词进行前后的组合,构成新的标签值 Ngram模型表示的是,对于词频而言,只考虑一个词,这里我们在CountVectorizer统计词频时,传入ngram_range=(2, 2)来构造新的词向量的组合 好比一句话'I like you' 如果ngram_range = (2, 2)表示只选取前后的两个词构造词…
函数说明: 1. re.sub(r'[^a-zA-Z0-9\s]', repl='', sting=string)  用于进行字符串的替换,这里我们用来去除标点符号 参数说明:r'[^a-zA-Z0-9\s]' 配对的模式,^表示起始位置,\s表示终止位置,[]表示取中间部分,这个的意思是找出除字符串大小写或者数字组成以外的东西,repl表示使用什么进行替换,这里使用'',即直接替换,string表示输入的字符串 2. stopwords = nltk.corpus.stopwords.word…
thumbnail: https://image.zhangxiann.com/jung-ho-park-HbnqEhMBpPM-unsplash.jpg toc: true date: 2020/8/11 12:40:20 disqusId: zhangxian categories: 数据竞赛 前言 这篇文章用于记录阿里天池 NLP 入门赛,详细讲解了整个数据处理流程,以及如何从零构建一个模型,适合新手入门. 赛题以新闻数据为赛题数据,数据集报名后可见并可下载.赛题数据为新闻文本,并按照字符…
一.文本表示 文本表示的意思是把字词处理成向量或矩阵,以便计算机能进行处理.文本表示是自然语言处理的开始环节. 文本表示按照细粒度划分,一般可分为字级别.词语级别和句子级别的文本表示.字级别(char level)的如把“邓紫棋实在太可爱了,我想养一只”这句话拆成一个个的字:{邓,紫,棋,实,在,太,可,爱,了,我,想,养,一,只},然后把每个字用一个向量表示,那么这句话就转化为了由14个向量组成的矩阵. 文本表示分为离散表示和分布式表示.离散表示的代表就是词袋模型,one-hot(也叫独热编码…
假设有一段文本:"I have a cat, his name is Huzihu. Huzihu is really cute and friendly. We are good friends." 那么怎么提取这段文本的特征呢? 一个简单的方法就是使用词袋模型(bag of words model).选定文本内一定的词放入词袋,统计词袋内所有词在文本中出现的次数(忽略语法和单词出现的顺序),将其用向量的形式表示出来. 词频统计可以用scikit-learn的CountVectori…