自然语言处理(NLP)的基本概念 (未完待续)
由于工作需要,俺近期一直在学习自然语言处理相关的技术。主要是看英文资料,包括经典书籍,论文,网页博客之类。不得不说,俺感觉这个领域有点黑啊! 因为没有很好的快速入门资料,要么你得慢慢啃二三百页的书,要么就是看看论文里说的天花乱坠,各种基本概念直接用,啥也看不懂。中文资料少,英文资料看得又慢。在这个老板今天要你学新技术明天就得出设计图的坑爹时代,哪有时间啃砖头啊?这是要把俺们这种零基础的人往绝路上逼啊!
所以在俺痛苦挣扎之后,决定要帮助可怜的同行们开辟一条活路,把俺学习的东西总结一下,以后好应付老板那厮们。不过丑话说在前头,俺学的是英文语言的处理,对中文的不熟,所以这里讲的概念都是以英文为基础的,纯是因为工作需要,鸟人们别说俺不爱国啥的,跟那没关系。
废话少说,直接进入正题:
1. 分词 (Tokenization)
NLP里最基础的概念了,一切都从这里开始。Token就是符号,包括单词和标点两种。Tokenization就是把一句话或者一段话分解成单个的单词和标点。比如说:
I hate my boss.
这句话,分词之后就成了:
['I', 'hate', 'my', 'boss', '.']
这样一个五元数组。注意最后的句点也算啊。
2. 词干提取 (Stemming)
把各种词形统一到一个基础词形。英文单词有各种单数,复数,时态等等变化,比如:
run 就有 run, runs, running, ran; take 有 take, takes, taking, taken, took 等等不同的形态。洋鬼子懒,能用现成的词就不发明新词了,哪像我们苦逼的,啊不是,勤劳的老祖宗仓颉任劳任怨,绝不偷懒。所以给你一句洋文,你的处理程序要处理其中各种单词的各种可能形态,这明显是坑爹。为了让我们码农的日子好过一点,我们就发明了一个简单粗暴的方法:
不管你句子里的词是什么形态,老子的字典里就一种形态:基本型,老子没时间考虑什么过去式,单复数,就那鸟老板给的那点工资还让我考虑什么形态?开玩笑!爱谁谁全都得给我归到基本型!怎么做?简单,英文单词的形态变化不都是加个词缀什么的吗?词缀不就是那么些个吗?什么s, es,ed, d, ing的,搞个列表把所有词缀都加进来,然后不管什么单词,只要是以这些词缀结尾的,统统给我删掉就行了。什么?这种方法有漏洞?像took, takes这种词会误操作成took,tak? 那我就不管了,除非老板给涨工资,就这么着吧。NLTK里讲了两个做Stemming的软件(Stemmer): Porter Stemmer 和 Lancaster Stemmer。看看实例吧,这个是nltk给的例子:
原句是:
|
乱七八糟的一堆句子, 就当是单词的集合好了,不用考虑句子含义.
Porter Stemmer 做的结果是:
|
不怎么样啊, 人名Dennis都给人家砍了个s, strange 也处理成了strang, lying倒是正确处理成了lie,还算有点用。
再来看看 Lancaster Stemmer吧:
['den', ':', 'list', ',', 'strange', 'wom', 'lying', 'in', 'pond', 'distribut','sword', 'is', 'no', 'bas', 'for', 'a', 'system', 'of', 'govern', '.', 'suprem','execut', 'pow', 'der', 'from', 'a', 'mand', 'from', 'the', 'mass', ',', 'not','from', 'som', 'farc', 'aqu', 'ceremony', '.']
这个更牛,den是什么?dennis的爱称?这个俺得研究一下。listen直接成了list, women成了wom, 一塌糊涂啊。
转载于:https://blog.51cto.com/victorghost/1330297
自然语言处理(NLP)的基本概念 (未完待续)相关推荐
- 深度学习(三十八)初识DL在自然语言序列标注中的应用-未完待续
初识DL在自然语言中的应用 原文地址: 作者: 一.自然语言序列标注 虽然之前自己对于HMM.CRF.Word2vec.Attention机制.Encode-Decode等,在自然语言领域的应用已经比 ...
- 接口基本概念(未完待续)
举例:http://192.168.111.83:55999/demotest/logon.do 接口常见术语 IP(192.168.111.83):相当于具体地址,如国贸大厦 端口(55999):相 ...
- 《图解 HTTP》读书笔记(未完待续)
ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...
- pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)
1. SRCNN 1.1. Contribution end-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 ). 指出了超分辨方向上传统方法( spar ...
- 学完oracle 再学mysql_一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- python线程和进程-未完待续
python线程和进程-未完待续 环境变量 0. 概念 1. 并行/并发 并行 并发 并行与并发的关系 2.进程/线程 基本概念 线程 多线程 队列 互斥锁/线程共享 阻塞 锁 条件锁 进程 多进程 ...
- 二叉树学习笔记(未完待续)
摘要 二叉树学习笔记(未完待续). 博客 IT老兵驿站. 前言 昨天(2019-11-07)复习红黑树,发现红黑树和二叉树密不可分,所以这里再复习一下二叉树. 在大学的时候,这块我很认真地学习了一遍. ...
- 程序人生(创)一个新手程序员的两三事(未完待续...)
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53375654 本篇博文同时在论坛连载:http://bbs.csdn.net/topi ...
- 多标签学习之讲座版 (内部讨论, 未完待续)
摘要: 多标签学习是一种常见的, 而并非小众的机器学习问题. 本贴为专题讲座准备. 1. 基本数据模型 定义1. 多标签数据为一个二元组: S=(X,Y),(1)S = (\mathbf{X}, \m ...
最新文章
- 清华学长免费分享Java基础核心知识大总结(1)
- 汇编学习(1)——基础知识
- 怎样实现前端裁剪上传图片功能
- CentOS7虚拟机搭建xwiki
- centos7-安装redis-教程190923-精准版
- JConsole工具使用
- 有趣的数学计算 1/9801 (结果 00,01,02,03。。。97)(使用到 BigDecimal )
- HDU 3911 Black And White(线段树区间合并+lazy操作)
- lxml.etree.SerialisationError: IO_ENCODER
- ElasticSearch8.1.2 ik分词器
- 火狐无法安装扩展_立即安装的前5个Firefox扩展
- 简单的五险一金计算器
- scratch 编程 + 小学数学
- 微信开发者工具 the permission value is offline verifying 异常
- 普华永道-开放数据资产估值白皮书,首创“数据势能”估值模型
- 【智能优化算法】基于融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法求解单目标优化问题附matlab代码
- 王祥林 计算机专业英语答案,计算机专业英语 第3版 配套习题 作者 王祥林 陈静姣 模拟试题1.doc...
- 计算机鼠标不出现在电脑屏幕上,电脑一打开就这样了,台式的,电脑屏幕不出现鼠标,求大神帮助...
- 促进早期的父母-婴儿情感联系可以改善早产儿的皮质网络
- 神州战神笔记本清灰+换硅脂-记录