NLP学习笔记

text = text.lower()  //全部小写

import re

text = re.sub(r”[a-zA-Z0-9]”,” ”,text)  //标点移除

//标记化(Tokenization )

Words = text.split() //以空格分词  ‘,’也会被分为一个词

//NLTK 自然语言工具包

From nltk.tokenize import word_tokenize

Words = word_tokenize(text)

//这种方法 Dr.会被分为一个词

From nltk.tokenize import sent_tokenize

Sents = sent_tokenize(text)

//停用词

From nltk.corpus import stopwords

Words = [w for w in words if w not in stopwords.words(“english”)]

//词性标注

From nltk import pos_tag

words = word_tokenize(text)

pos = Pos_tag(words)

//命名实体识别

From nltk import pos_tag,ne_chunk

From nltk.tokenize import word_tokenize

words = word_tokenize(text)

pos = Pos_tag(words)

Ne_chunk(pos)

//词干提取(stemming)

//将词还原成词干或词根,对内存要求较低

eg: branching/branched/branches->branch

//但是有时会生成不是完整单词的词干,比如changing->chang

From nltk.stem.porter import PorterStemmer

Stemmed = [PorterStemmer().stem(w) for w in words] (words已去除停用词)

//词形还原器(Lemmatization)

//与上面那个区别在于基于词典(好像是),生成有含义的词,比如changing->change

eg:is/are/am -> be

From nltk.stem.porter import WordNetLemmatizer

Lemmed = [wordNetLemmatizer().lemmatize(w) for w in words]

//默认转换n,可指定词性

Lemmed = [wordNetLemmatizer().lemmatize(w,pos = “v”) for w in words]

//常用方法是先lemmatization,后stemming

 

深度学习自然语言运算:

词袋模型:

可用于比较两个文档中有多少共词或词频相似度

计算两个向量之间的点积

缺陷:只捕捉重叠部分

改进:计算余弦相似度(-1,1)

1表示相似度最高,-1表示相似度最低

词袋模型的另一个限制是将每个词的重要性同等对待

TF-IDF:

独热编码

单词嵌入:

Word2Vec 词->向量  正向嵌入

给出相邻词、给出中间词

 

GloVe  全局向量

t-SNE  t分布随机邻域嵌入,是一种降维技术,

有点像PCA(主成分分析),

但在转换时,尝试保持对象之间的的相对距离

可用于词嵌入可视化

 

主题建模 Topic Modeling

LDA 潜在狄克雷分布

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值