自然语言处理笔记(day1)

自然语言处理笔记(day1)

第2章 正则表达式、文本规范化、编辑距离

2.1 正则表达式

2.1.1 基本正则表达式模式

字符串匹配:搜索首次匹配的字符串,大小写区分匹配。

[ ] ,[ - ] 可以对括号里面的字符串进行指定的搜索,搜索出[ ]括号中任意包含的某一个字符。

“^” 在[ ]中表示非、否定

/[ˆA-Z]/ 表示匹配不是大写字母的字符

/[eˆ] 表示匹配 ‘e’ 或者 ’^‘

/aˆb/ 表示匹配 ”a^b“

/colou?r/ 表示?前一个字符没有或者?后面的字符没有。

/aa*/ 匹配一个或多个a的正则表达式 。

/[ab]*/ 表示“0个或多个a或b”(而不是“0个或多个右方括号”)

/[ 0-9 ][ 0-9 ]*/ 表示仅限整数的一串字符串

/[0-9]+/ 表示仅限整数的一串字符串

/baaa*!/ or /baa+!/ 表示

baa!
baaa!
baaaa!
baaaaa!
.........

/beg.n/ 表示“beg” 和 “n” 中间可以是任意字符(回车除外).可以指定除回车以外的任意字符。

/.*/ 表示任意字符串

/ˆ 单独的“^”表示这一行的开始

/$ 表示一行的结尾

\b 表示单词边界

\B 表示非单词边界

2.1.2 分离、分组和优先级

“|” 析取

/cat|dog/ 表示匹配字符串cat 或者 dog

/gupp(y|ies) 表示匹配 guppy 或者 guppies

模式匹配时会尽可以的匹配最长的字符串

2.1.2 一个简单的例子(匹配精度一步步提高的过程)

情况一:

/the/ 缺少The

/[T/t]he/ the为嵌入的字符时匹配错误

/\b[T/t]he\b/ 为the增加了边界,成功

情况二:

/the/ 缺少The

/[T/t]he/ the为嵌入的字符时匹配错误

/[^a-zA-Z][T/t]he[^a-zA-Z]/ 当the为首单词时,不能匹配,要求了the之前或之后必须有字符(非字母)

/[^|A-Za-z][T/t]he[$|A-Za-z]/ 要求了the可以为首字母,成功

你可能感兴趣的:(自然语言处理笔记,正则表达式,nlp,自然语言处理)