由于工作需要,俺近期一直在学习自然语言处理相关的技术。主要是看英文资料,包括经典书籍,论文,网页博客之类。不得不说,俺感觉这个领域有点黑啊! 因为没有很好的快速入门资料,要么你得慢慢啃二三百页的书,要么就是看看论文里说的天花乱坠,各种基本概念直接用,啥也看不懂。中文资料少,英文资料看得又慢。在这个老板今天要你学新技术明天就得出设计图的坑爹时代,哪有时间啃砖头啊?这是要把俺们这种零基础的人往绝路上逼啊!

所以在俺痛苦挣扎之后,决定要帮助可怜的同行们开辟一条活路,把俺学习的东西总结一下,以后好应付老板那厮们。不过丑话说在前头,俺学的是英文语言的处理,对中文的不熟,所以这里讲的概念都是以英文为基础的,纯是因为工作需要,鸟人们别说俺不爱国啥的,跟那没关系。

废话少说,直接进入正题:

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给的例子:

原句是:

"""DENNIS: Listen, strange women lying in ponds distributing swords... is no basis for a system of government.  Supreme executive power derives from... a mandate from the masses, not from some farcical aquatic ceremony."""

乱七八糟的一堆句子, 就当是单词的集合好了,不用考虑句子含义.

Porter Stemmer 做的结果是:

['DENNI', ':', 'Listen', ',', 'strang', 'women', 'lie', 'in', 'pond','distribut', 'sword', 'is', 'no', 'basi', 'for', 'a', 'system', 'of', 'govern','.', 'Suprem', 'execut', 'power', 'deriv', 'from', 'a', 'mandat', 'from','the', 'mass', ',', 'not', 'from', 'some', 'farcic', 'aquat', 'ceremoni', '.']

不怎么样啊, 人名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)的基本概念 (未完待续)相关推荐

  1. 深度学习(三十八)初识DL在自然语言序列标注中的应用-未完待续

    初识DL在自然语言中的应用 原文地址: 作者: 一.自然语言序列标注 虽然之前自己对于HMM.CRF.Word2vec.Attention机制.Encode-Decode等,在自然语言领域的应用已经比 ...

  2. 接口基本概念(未完待续)

    举例:http://192.168.111.83:55999/demotest/logon.do 接口常见术语 IP(192.168.111.83):相当于具体地址,如国贸大厦 端口(55999):相 ...

  3. 《图解 HTTP》读书笔记(未完待续)

    ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...

  4. pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)

    1. SRCNN 1.1. Contribution end-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 ). 指出了超分辨方向上传统方法( spar ...

  5. 学完oracle 再学mysql_一篇文章让Oracle程序猿学会MySql【未完待续】

    一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...

  6. python线程和进程-未完待续

    python线程和进程-未完待续 环境变量 0. 概念 1. 并行/并发 并行 并发 并行与并发的关系 2.进程/线程 基本概念 线程 多线程 队列 互斥锁/线程共享 阻塞 锁 条件锁 进程 多进程 ...

  7. 二叉树学习笔记(未完待续)

    摘要 二叉树学习笔记(未完待续). 博客 IT老兵驿站. 前言 昨天(2019-11-07)复习红黑树,发现红黑树和二叉树密不可分,所以这里再复习一下二叉树. 在大学的时候,这块我很认真地学习了一遍. ...

  8. 程序人生(创)一个新手程序员的两三事(未完待续...)

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53375654 本篇博文同时在论坛连载:http://bbs.csdn.net/topi ...

  9. 多标签学习之讲座版 (内部讨论, 未完待续)

    摘要: 多标签学习是一种常见的, 而并非小众的机器学习问题. 本贴为专题讲座准备. 1. 基本数据模型 定义1. 多标签数据为一个二元组: S=(X,Y),(1)S = (\mathbf{X}, \m ...

最新文章

  1. 清华学长免费分享Java基础核心知识大总结(1)
  2. 汇编学习(1)——基础知识
  3. 怎样实现前端裁剪上传图片功能
  4. CentOS7虚拟机搭建xwiki
  5. centos7-安装redis-教程190923-精准版
  6. JConsole工具使用
  7. 有趣的数学计算  1/9801 (结果 00,01,02,03。。。97)(使用到 BigDecimal )
  8. HDU 3911 Black And White(线段树区间合并+lazy操作)
  9. lxml.etree.SerialisationError: IO_ENCODER
  10. ElasticSearch8.1.2 ik分词器
  11. 火狐无法安装扩展_立即安装的前5个Firefox扩展
  12. 简单的五险一金计算器
  13. scratch 编程 + 小学数学
  14. 微信开发者工具 the permission value is offline verifying 异常
  15. 普华永道-开放数据资产估值白皮书,首创“数据势能”估值模型
  16. 【智能优化算法】基于融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法求解单目标优化问题附matlab代码
  17. 王祥林 计算机专业英语答案,计算机专业英语 第3版 配套习题 作者 王祥林 陈静姣 模拟试题1.doc...
  18. 计算机鼠标不出现在电脑屏幕上,电脑一打开就这样了,台式的,电脑屏幕不出现鼠标,求大神帮助...
  19. 促进早期的父母-婴儿情感联系可以改善早产儿的皮质网络
  20. 神州战神笔记本清灰+换硅脂-记录

热门文章

  1. C# 微信支付宝 Winform 开发支付宝微信二维码 付款功能(扫码付,条码付,退款、查询、撤销)
  2. USB协议详解第6讲(USB描述符-端点描述符)
  3. RedHat Linux 9.0 安装教程(全程图解)
  4. 鬼影3样本Mbr之后保护模式代码详细注释(最精华的地方啦)
  5. 2 数据分析之Numpy模块(1)
  6. 我人生的两大梦想是: 睡觉睡到自然醒 数钱数到手抽筋
  7. 开放世界--OpenWorld
  8. Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)
  9. 自定义UI 基础知识
  10. C语言 · 猜灯谜