当前位置:网站首页>Speech and Language Processing (3rd ed. draft) Chapter 2 ——正则表达式,文本归一化,编辑距离 阅读笔记
Speech and Language Processing (3rd ed. draft) Chapter 2 ——正则表达式,文本归一化,编辑距离 阅读笔记
2022-07-27 05:18:00 【Haulyn5】
前言
本章名称:REGULAR EXPRESSIONS, TEXT NORMALIZATION, EDIT DISTANCE
从 DLHLP 2020 那边了解到了这本书,开源免费,关于 Speech 和 NLP 的一本非常优秀的书,cs224n 的官网推荐的 ref 里面也有这本书。在书这个角度上有仓鼠症的我当然是第一时间下载,然后没看几页,最近发现 CSDN 写博客也挺好的,可以同步,也可以保存草稿,不会让我的桌面那么乱了,之后一些学习的东西也可以挂在这里,当然也希望能够多写东西进而练练文笔,能写出一些让别人看起来舒服而不是光自己能看懂的东西(当然这个才是需要功夫和耐心的,可能又要数倍的时间)
教材开源网址:
Speech and Language Processing
https://web.stanford.edu/~jurafsky/slp3/
本篇笔记的记载顺序基本按照教材原文,基本上属于教材原文的精炼。
正文
lemmatization: 判断两个词是否有相同的词根。
Lemma: “sing” 就是 “sang”, “sung”, “sings” 的 common lemma。
Stemming: simpler version of lemmatization in which we mainly just strip suffixes from the end of the word.
正则有很多变种,书中介绍的正则叫做 extended regular expressions。
正则是大小写敏感的。
方括号"[ ]" 表示一组待匹配的内容。比如我想做某个字母的大小写不敏感,我就可以用下面的例子。
[gG]reat 就可以匹配 great 或者 Great。
方括号里面也可以有很多内容,[0123456789]就可以匹配任意一位数字。当然你肯定觉得这样很费事,所以正则里可以用横线dash“-”来表示range。不像 python 或部分编程语言,正则的 range 是前闭后也闭。
所以 [1-3] 可以匹配 1 或 2 或 3。 [0-9] 就是所有数字,[A-Z] 和 [a-z] 就是所有的大写字母和小写字母。
caret ^ 放在方括号里的开头表示 取反,就是不在范围内的匹配。如果没出现在方括号里,就是正常的表达式里出现 ^ ,那它就是匹配他自己。
[^123] 表示除了 1 或 2 或 3 的任何字符都可以被匹配。[1^] 匹配 1 或者 ^ 。1^ 表示匹配 1^ 这两个连续字符。
question mark ? 表示前面的那个字符可能有也有可能没有。
比如 dogs? 就可以匹配 dog 或 dogs。
星号 asterisk * 表示匹配零个或若干个前面的字符。问号升级版了属于是。
Ah*! 就可以匹配 A! Ah! Ahh! 等等。有意思的情况是,a* 是可以匹配 123 的,以为里面没有 "a" 哈哈哈哈哈。结合前面的知识点,a[12]* 就是a加上零个或若干个 1 或者 2,比如 a111 a222 a121 a345 都可以匹配。
OK,基础学完了,课间考试,如何表达正整数?
[0-9][0-9]*,因为如果只有 [0-9]*,什么都没有也可以匹配。这样太不优雅了,所以又有了升级版。
加号 + ,表示至少一个,或若干个。
所以如果表示一串数字,一般优雅的表示是 [0-9]+ 。
period (/./),英文句号,表示通配符,可以匹配除了回车的任何字符。
比如 a.b 就可以匹配 aab a1b a'b 等等。
通配符经常和星号一起用,.* 表示任意长度的字符串(可以是什么都没有)。
一个有趣的应用是,比如我想找出现过两次 Tom 的一行,就可以用正则 Tom.*Tom 来匹配。
Anchors 是一类有意思的高级符号,下面分开介绍。
^ 表示一行的开头, “^The” 只会匹配出现在最开头的 The,如果The 出现在其他地方则不会被匹配。对应的 $ 表示一行的结尾。所以 “^The mouse.$” 只会匹配一行中只有 “The mouse.” 这些字符的行。
\b 表示 word boundary ,“\bwhat\b” 就只会匹配单独的 word "what",不会匹配 “whatever”。值得注意的是,这里word的定义是根据编程语言定义的,word 指下划线,字母,数字的组合,也就是说 “\b88” 会匹配 “88” 但是无法匹配 “188”,因为 1 也是 word 的内容,还没到边界。但是"$88" 可以被匹配,因为 "$" 并没有被列入 word。
\B 就是表示 \b 的反义,所有不能匹配 \b 的都能匹配 \B,反之亦然。
才记到 2.1.2 就已经用了这么久……笔记有点太细了
边栏推荐
猜你喜欢

2.简单回归问题

Day 3. Suicidal ideation and behavior in institutions of higher learning: A latent class analysis

维度问题以及等高线

数字图像处理 第二章 数字图像基础

Emoji Emoji for text emotion analysis -improving sentimental analysis accuracy with Emoji embedding

模型的推理速度

向量和矩阵的范数

贪心高性能神经网络与AI芯片应用研修

15. GPU acceleration, Minist test practice and visdom visualization

Social media user level psychological stress detection based on deep neural network
随机推荐
Andorid detects GPU rendering speed and over rendering
西瓜书学习笔记---第四章 决策树
Day 7. Towards Preemptive Detection of Depression and Anxiety in Twitter
Day 11. Evidence for a mental health crisis in graduate education
6. Dimension transformation and broadcasting
Day 4.Social Data Sentiment Analysis: Detection of Adolescent Depression Signals
Matlab 画图(超详细)
神经网络参数初始化
模型的推理速度
Digital image processing Chapter 5 - image restoration and reconstruction
Day 6. Analysis of the energy transmission process of network public opinion in major medical injury events * -- Taking the "Wei Zexi incident" as an example
12. Optimization problem practice
Gbase 8C - SQL reference 6 SQL syntax (5)
【好文种草】根域名的知识 - 阮一峰的网络日志
数字图像处理——第六章 彩色图像处理
19. Up and down sampling and batchnorm
Only one looper may be created per thread
Numpy基础学习
GBASE 8C——SQL参考6 sql语法(3)
GBASE 8C——SQL参考 5 全文检索