NLP学习(正则化)

本文介绍了正则表达式在自然语言处理(NLP)中的基本应用,包括基础模式如锚点、析取、组合和优先关系,以及高级操作符。通过实例解析了如何使用正则表达式匹配特定的文本模式,如单词'the'及其变体,并探讨了不同操作符的优先级和使用场景。
摘要由CSDN通过智能技术生成

学习自 Speech and language processing 3rd ed
https://web.stanford.edu/~jurafsky/slp3/

注:以下双斜线中间的都表示匹配模式 /*/

1.基础正则表达式模式

输入你想要匹配的字符
这里写图片描述
注意:正则表达式是大小写敏感的,若现在想匹配W或w,可以使用 /[Ww]/ 做匹配
方括号[]中间的内容只要匹配其中的一个就算匹配成功
这里写图片描述

若觉得此处的/[1234567890]/过于麻烦,可以简化为/[0-9]/,就是在中间加一短横,同样,所有的大写字母可以简化成/[A-Z]/

这里写图片描述

那如果我们想要匹配的是 非大写字母 呢,我们可以在中括号最前面加一个^符号,比如/[^A-Z]/ 就表示不匹配所有的大写字母,如果,^符号在匹配段的中间的话,^表示自己本身,见下图
这里写图片描述

注意:在匹配没有方括号[]表示的模式时,就是匹配该模式本身,^表示的是自己本身,而不是表示非,再者,若^在[]里面,但不是在开头,^也表示自己本身

若我们想匹配 woodchuck和woodchucks,怎么办呢?我们可以使用 ?, ?表示之前的一个字符由零个或者一个,见下图

这里写图片描述

那么,如果我们想匹配如下字符:
baa!
baaa!
baaaa!
baaaaa!

我们可以使用星号 * ,表示之前的一个字符有零个或者多个,因此,若我们要表示连续一个或多个a,我们就要使用 /aa*/ 的方式匹配,为什么不能用a*来匹配呢?这样有时会十分不方便,于是我们就有了另外一个符号 加号+ ,加号+表示一个或多个
现在,若我们想匹配上面的那段字符,可以使用/baaa*!/ 或者 /baa+!/ 进行匹配

另外一个重要的符号是 点号 . ,点号是一个通配符,表示任何单个字符(除了回车符),见下图
这里写图片描述

那么,现在,我们可以将点号和星号联合起来,表示任意长度的任意符号串了,
比如,我们想要匹配开头和结尾都是www的行,我们可以用 /www.*www/

锚(anchor)

又轮到 ^登场了,^可以匹配句子开头,比如我们要找以 The 开头的句子,使用 /^The/ 进行匹配,另一个anchor美元符号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值