NLP的基本手段 正規表示式

2021-09-10 15:57:10 字數 2549 閱讀 3659

正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配。正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊。

nlp通常所需要處理的預料一部分來自web網頁的資訊抽取,一部分來自文字格式的文件,但是它們的格式不統一,大部分為半結構化文字,因此需要處理它們,將其轉變為結構化文字以便後續處理。

正規表示式的另乙個作用是去除雜訊。在處理大量文字片段的時候,有非常多的文字資訊與最終輸出的文字無關,這些無關片段稱之為雜訊(如url或鏈結、語氣助詞、標點符號等)。

在python中,我們用re模組來實現正規表示式。通過使用re的乙個方法--re.search。

通過使用re.search(regex,string)這個方法,我們可以檢測到string這個字串是否匹配正規表示式regex。如果匹配到會返回乙個match物件,如果沒有匹配到則返回none。

import re

text_string = '''正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配,正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊,'''

regex = '正則'

p_string = text_string.split(',') #以逗號為分隔符劃分原句

for line in p_string:

if re.search(regex,line) is not none: #查詢是否匹配

print(line) #如果匹配到,列印這行資訊

結果:

正規表示式是一種定義了搜尋模式的特徵序列

正規表示式是處理nlp的最基本手段之一

符號含義.

匹配任意乙個字元

如正規表示式

可以匹配

不能匹配

a.cabc

abdc

..tbat

it

import re

text_string = '''正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配,正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊,'''

regex = '正.'

p_string = text_string.split(',') #以逗號為分隔符劃分原句

for line in p_string:

if re.search(regex,line) is not none: #查詢是否匹配

print(line) #如果匹配到,列印這行資訊

結果

正規表示式是一種定義了搜尋模式的特徵序列

正規表示式是處理nlp的最基本手段之一

符號含義^

匹配開始的字串

''^a'' 代表的是匹配所有以a開頭的字串

$匹配結尾的字串

''a$'' 代表的是匹配所有以a結尾的字串

import re

text_string = '''正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配,正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊,'''

regex = '^正'

p_string = text_string.split(',') #以逗號為分隔符劃分原句

for line in p_string:

if re.search(regex,line) is not none: #查詢是否匹配

print(line) #如果匹配到,列印這行資訊

結果

正規表示式是一種定義了搜尋模式的特徵序列

正規表示式是處理nlp的最基本手段之一

符號

含義例子

[ ]匹配多個字元

''[bcr]at'' 代表匹配 ''bat'' ''cat'' ''rat''

[string1-string2]

匹配從string1到string2的所有字元

''[a-z]'' 代表從a-z的所有字元   ''[1-9]''代表從1-9的所有字元

正規表示式也使用的是「\」作為轉義符,所以會有困擾

符號含義

''\\\\''

前兩個和後兩個斜槓分別在程式語言中轉義為乙個反斜槓,然後這兩個反斜槓再在正規表示式中轉義為乙個反斜槓。

解決方法

符號含義

r''\\''

同上

基本正規表示式

匹配除了換行符以外的任意字元 w 匹配字母或數字或下劃線或漢字 字母大寫即反義 不匹配 s 匹配任意的空白符 字母大寫即反義 不匹配 d 匹配數字 字母大寫即反義 不匹配 b 匹配單詞的開始或結束 字母大寫即反義 不匹配 匹配字串的開始 匹配字串的結束 x 匹配除了x以外的任意字元 aeiou 匹配...

正規表示式 基本

字元 d任意乙個數字,0 9中任意乙個 d任意非數字 w任意乙個字母 下劃線 數字。即 a z a z 0 9 w表示除 0 9a za z 之外的字元 s匹配任何空白字元,包括空格 製表符 換頁符等等。等價於 f n r t v s匹配任何非空白字元。匹配任意乙個字元 如要匹配包括 n在內的所有字...

基本的正規表示式

附件一 正規表示式語法 字元 說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n n 匹配換行符。序列 匹配 匹配 匹配輸入字串開始的位置。如果設定了 regexp 物件的 multiline 屬性,還會與 n 或 r 之後的位置匹配。匹配輸入字串結尾的位置。如果...