[英]Regular expression <.*?>
我是新來的Python,並一直在尋找的文字清潔的例子,如這對Kaggle,且對制止和停用詞部分的一些問題。
for sentence in final_X:
sentence = sentence.lower() # Converting to lowercase
cleanr = re.compile('<.*?>')
sentence = re.sub(cleanr, ' ', sentence) #Removing HTML tags
sentence = re.sub(r'[?|!|\'|"|#]',r'',sentence)
sentence = re.sub(r'[.|,|)|(|\|/]',r' ',sentence) #Removing Punctuations
cleanr = re.compile('<.*?>')
是什么意思? 我知道它用於刪除 HTML 標簽,但我對<.*?>
含義感到困惑。
<.*?>
被稱為正則表達式模式。 該模式特別查找<
,然后是任意數量的字符.*
后跟>
。 期間.
表示“任何字符”,星號*
表示“0 次或多次”。 問號?
*
后面是惰性量詞,表示它應該使用盡可能少的字符。 這對於這樣的情況很重要:
<p> 2 > 1 </p>
如果問號不存在,則模式將匹配: <p> 2 > 1 </p>
而如果問題在那里,它會尋找 FIRST >
跟在<
像這樣: <p>
2 > 1
</p>
這是期望的結果
這是一個正則表達式模式。 此圖案<.*?>
指具有串<
后跟任何字符(由點編碼)重復任意次數(由星形編碼),最后>
星后問號是使其懶惰,即匹配在<
之后遇到的第一個>
處停止。
請參閱https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285以了解有關正則表達式的更多信息。
其實可以
sentence = re.sub('<.*?>', ' ', sentence)
代替
cleanr = re.compile('<.*?>')
sentence = re.sub(cleanr, ' ', sentence)
否則cleanr = re.compile('<.*?>')
應該在for
循環之前進行優化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.