改變思路到底多重要?我通過這件小事兒明白了

我所說的一切都可能是錯的缭裆!
即使你贊同我的觀點(diǎn)键闺,
你的生活也不會因此有任何改變!
除非——你采取了相應(yīng)的行動澈驼。

(這是書先生的第226篇原創(chuàng)分享辛燥。2021年3月24日,于新加坡)

引子

今天分享一件小事兒。

事兒很小挎塌,之所以覺得值得分享徘六,是因?yàn)槲覐闹袑W(xué)到了點(diǎn)兒重要的東西。

這個小事兒是這樣的:路夫人讓我?guī)兔μ幚韨€文檔榴都。文檔長這樣:

其實(shí)就是《新概念英語第二冊》的中英對照版待锈。夫人的要求是去掉所有的英文,但是每篇課文的標(biāo)題要保留嘴高。

兩種思路

對我這種天天和語料庫打交道的人來說炉擅,這還不簡單,也就一行正則表達(dá)式的事兒阳惹。

正則表達(dá)式谍失,英文叫regular expression,可以說是搞文本處理的朋友必須掌握的小技術(shù)莹汤。它的作用就是用一些符號的組合來匹配你想要搜索的字符串模式快鱼。你可以把它理解為升級版的通配符。

比如“\d”表示所有的數(shù)字纲岭,“\w”表示所有的字母和漢字抹竹,“\t”表示制表符,等等等等止潮。當(dāng)然窃判,更有用的是基本符號的合理組合,來匹配更加復(fù)雜的模式喇闸,比如:

匹配Email地址:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
匹配不定式(用于有句法標(biāo)注的語料庫):to_TO\s.*?[a-zA-Z]+_V
匹配“it + BE + adj + that”結(jié)構(gòu)(用于有詞性賦碼的語料庫):\S+_PPH1\s\S+_VB\w*\s\S+_J\w+\s\S+_CST\s
……

這個小技術(shù)在文本清理袄琳、爬蟲編寫和語料庫檢索方面很有用,對這些東西感興趣的朋友很有必要花點(diǎn)兒時間學(xué)一下燃乍。具體的技術(shù)細(xì)節(jié)不是本文的重點(diǎn)唆樊,我就不贅述了。

寫正則表達(dá)式的第一步就是觀察文本的特征刻蟹。我就在這一步犯了錯誤逗旁。

我的第一個思路是匹配有英文字母,但是不以“Lesson”開頭的句子舆瘪,于是寫了這樣一個正則表達(dá)式:

^((?!Lesson)).*[a-zA-Z].*

這個表達(dá)式可以匹配所有包含英文字母但是不以Lesson開頭的行片效。一個比較簡單的表達(dá)式,稍微復(fù)雜點(diǎn)就是里面對Lesson的“零寬負(fù)向先行斷言”((?!pattern))英古。

工作到此可以算是完成了淀衣,但我又看了看文本,發(fā)現(xiàn)自己犯了一個很傻的錯誤——我對文本的特征概括有點(diǎn)復(fù)雜了哺呜。

的確舌缤,匹配所有包含英文但不以Lesson開頭的行箕戳,這個思路能完成任務(wù)。但是国撵,根據(jù)文本的特征陵吸,還有一個更簡單的思路,那就是匹配所有包含中文字符的行介牙,因?yàn)槲覀冃枰サ舻男幸欢ㄊ遣缓形牡摹?/p>

這就是一個條件壮虫,而不是兩個條件了,從原理上來說环础,簡單了50%囚似。于是我又寫了下面這個正則表達(dá)式:

.^((?![\u4e00-\u9fa5]).)$

其中[\u4e00-\u9fa5]是正則表達(dá)式里匹配漢字的寫法。這個表達(dá)式能達(dá)到相同的效果线得。

粗一看饶唤,您可能覺得兩個表達(dá)式復(fù)雜程度差不多,而且都能達(dá)到目的贯钩。但是募狂,從思路上來看,第二種更加簡潔和準(zhǔn)確角雷。

簡潔是因?yàn)橹恍枰袛嘁粋€條件祸穷,準(zhǔn)確是因?yàn)樾枰サ舻男欣镆欢]有英文字母,但需要保留的行里卻可能出現(xiàn)英文字母勺三。整個文本有幾十頁雷滚,我們不可能把全部文本都讀一遍才來匹配,所以應(yīng)該在編寫正則表達(dá)式時盡量選擇出錯概率小的吗坚。

結(jié)語

今天分享的的確是件小事兒祈远,小到一分鐘就可以解決。但這處理這個小事兒時刻蚯,思路的轉(zhuǎn)化绊含,卻很值得思考。還是老規(guī)矩炊汹,我?guī)湍偨Y(jié)一下。如果您經(jīng)常會用正則表達(dá)式處理語料庫逃顶,下面兩點(diǎn)可能值得注意:

  1. 概括匹配對象特征時讨便,盡量減少匹配條件。
  2. 選擇表達(dá)式時以政,盡量選擇出錯概率小的霸褒。

好了,今天的分享就到這里盈蛮,希望對您有所幫助废菱。歡迎點(diǎn)贊、留言、轉(zhuǎn)發(fā)殊轴,支持這個默默耕耘的靠譜公眾號衰倦。

(原創(chuàng)內(nèi)容,未經(jīng)允許旁理,不得轉(zhuǎn)載7恪)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市孽文,隨后出現(xiàn)的幾起案子驻襟,更是在濱河造成了極大的恐慌,老刑警劉巖芋哭,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沉衣,死亡現(xiàn)場離奇詭異,居然都是意外死亡减牺,警方通過查閱死者的電腦和手機(jī)厢蒜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烹植,“玉大人斑鸦,你說我怎么就攤上這事〔莸瘢” “怎么了巷屿?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墩虹。 經(jīng)常有香客問我嘱巾,道長,這世上最難降的妖魔是什么诫钓? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任旬昭,我火速辦了婚禮,結(jié)果婚禮上菌湃,老公的妹妹穿的比我還像新娘问拘。我一直安慰自己,他們只是感情好惧所,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布骤坐。 她就那樣靜靜地躺著,像睡著了一般下愈。 火紅的嫁衣襯著肌膚如雪纽绍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天势似,我揣著相機(jī)與錄音拌夏,去河邊找鬼僧著。 笑死,一個胖子當(dāng)著我的面吹牛障簿,可吹牛的內(nèi)容都是我干的盹愚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卷谈,長吁一口氣:“原來是場噩夢啊……” “哼杯拐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起世蔗,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤端逼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后污淋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顶滩,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年寸爆,在試婚紗的時候發(fā)現(xiàn)自己被綠了礁鲁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡赁豆,死狀恐怖仅醇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情魔种,我是刑警寧澤析二,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站节预,受9級特大地震影響叶摄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜安拟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一蛤吓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糠赦,春花似錦会傲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奔滑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顺少,已是汗流浹背朋其。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工王浴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人梅猿。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓氓辣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親袱蚓。 傳聞我的和親對象是個殘疾皇子钞啸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容