NLP理论基础

摘要:本文以NLTK为基础配合讲解自然语言处理的原理。

1.NLTK简介:
NLTK是Python上著名的自然语言处理库,自带语料库、词性分类库、自带分类、分词等功能,强大的社区支持,还有很多的简单版wrapper。
NLTK的安装:参考官网的安装过程,http://www.nltk.org/
NLTK的使用:首先 import nltk 导入nltk,然后 nltk.download() 安装语料库
NLTK自带语料库 :nltk.corpus 一个语料库

2.文本处理流程
先做预处理(Preprocess),包括分词(Tokenize)、去除停止词,然后生成表达式,预处理的作用就是把人能理解的文本最终变成计算机能够看懂的表达式,然后创造出一些特征(Make Features),即用数字表达。
(1)分词(Tokenize)
分词中中英文NLP区别:中文词语中间没有空格,英文中根据空格直接分词。
中文分词的两种方式:
a. 启发式Heuristic:对照字典表,统计类
b. 机器学习/统计方法:HMM(隐式马科夫链)、CRF、斯坦福的CoreNLP支持中文的分词
常用的分词器:jieba、word tokenize、CoreNLP、NLTK
例如:
import jieba
例如:我来到北京清华大学
全模式:我/来到/北京/清华/清华大学/华大/大学
精确模式:我/来到北京/清华大学
新词识别:他、来到、了、网易、杭研、大厦
(杭研并没有在词典中,但是也被Viterbi算法识别出来)
搜索引擎模式:小明、硕士、毕业、于、中国、科学、学院、科学院、中国科学院、计算、计算所
有时候tokenize没那么简单,社交网络中有一些乱七八糟的不合语法的语言,例如@、还有表情符号之类的。社交网络语言的tokenize,如图所示:
在这里插入图片描述可以借助于正则表达式:import re
re为正则表达式
在这里插入图片描述
正则表达式对照表:http://www.regexlab.com/zh/regref.htm

纷繁复杂的词形:walk—walking----walked
nation(民族)----national(国家)------nationalize()

处理方法:Stemming(词干提取)
词性归一化(Lemma) POS_Tag 词性标注
(2)去除停止词(Stopwords)
Nltk去除Stopwords
一条典型的文本预处理流水线
在这里插入图片描述

什么是自然语言处理:把自然语言变成计算机语言

文本预处理让我们得到了什么?:数字表达的特征值

3.NLTK在NLP上的经典应用:
(1)情感分析:本人不研究,略过
(2)文本相似度:
用元素频率表示文本特征,用每个词在句子中出现的频率来表示文本,例如(1,0,3,0,1,1),(1,0,2,0,1,1),(0,1,0,1,0,0)
三个句子均形成一个向量表达式,把它看成一个行向量,然后利用定理,两个向量的夹角越小,表示这两句话越相似,夹角越大,表示这两句话越不相似在这里插入图片描述

(3)文本分类
Frequency频率统计:在tokenize中做好统计,NLTK中FreqDist可以做词频统计,是一个统计器。
TF-IDF(文本分类中的一个算法):
TF:The Frequency,衡量一个term在文档中出现得有多频繁
在这里插入图片描述
可能的ML模型:SVM、LR、RF、MLP、LSTM、RNN

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值