自然语言处理入门学习系列<一>

最近在学习和实践自然语言处理相关的知识,在这个文档从头到尾做个总结,防止自己忘记,也提供给新人来参考。本教程英文处理使用的是NLTK这个Python库,中文处理使用的是jieba这个Python库,主要是看July7月学习NLP视频学习而来,如有侵权,立即删除。Natural Language Processing(NLP)自然语言处理主要是处理以及理解自然语言的计算过程。整个自然语言处理的大致流程入下图所示:
这里写图片描述
图1:自然语言处理流程
一、自然语言处理流程
第一步:Tokenize——分词,分词是将一个句子分成很多个单词,用一个word list存起来。如:
英文:How are you today? 会分成 [“How”,”are”,”you”,”today”,”?”]
中文:今天心情很好。 会分成[“今天”,”心情”,”很”,”好”,”。”]
第二步: Stemming/Lemma——提取词干,是将英文的过去式,名词形式,复数形式全部转换为最原始单词。如:
apples => apple, went => go, watched => watch, watching => watch
第三步:stopwords ——去除停止词,去掉单词列表中的停止词the,a等单词。如:
英文: The school is beautiful. => [“school”,”beautiful”],去掉了the,is等单词。
有时会用到POS Tag —— 标注词性,即标注出单词是动词/名词/形容词/副词等。
第四步:Get feature —— 提取特征,这个步骤的意思是用一个什么样的向量来表示这单词或者句子。如使用TF-IDF来表示一个单词:
TF:Term Frequecy:衡量一个单词在文档中出现的次数
TF(term) = (term出现在文档中的次数)/(文档中单词的总数)
IDF:Inverse Document Frequecy,衡量一个单词的重要性
IDF(term) = loge(文档总数/含有term的文档总数)
如果一个单词在所有文档中都出现了,则IDF(term) = 0,表明这个单词不重要。
TF-IDF = TF * IDF
对每个单词进行统计和计算,就可以得到每个单词的TF-IDF的值,用这个值来代替这个单词,整个句子就变成了一个浮点数的List。
当然这个是最简单的模型,这个模型有很多缺陷,现在流行的word2vect和fasttext,都是由google实习生写出来的,这两个模型生成的分布式向量可以有效的表达出两个单词之间的关系,这个在后续再做介绍。
第五步:Machine Learning——机器学习,机器学习是表示得到特征向量之后,能根据训练集合来预测需要测试集合。这个部分也在后续再做专门的介绍。
二、自然语言处理入门软件安装以及常见问题
整个实验环境是在VMWare+Ubuntu 16.04 LTS下完成的,最好是能翻墙,我用的翻墙软件是LoCo加速器。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值