2017-10-09 82 views
-1

我想在R中的語料庫中進行預處理,並且我需要刪除以$開頭的單詞。下面的代碼刪除$但不是$字,我很困惑。如何刪除以R開頭的語料庫中的單詞?

inspect(data.corpus1[1:2]) 
# <<SimpleCorpus>> 
# Metadata: corpus specific: 1, document level (indexed): 0 
# Content: documents: 2 
# 
# [1] $rprx loading mid .60's, think potential. 12m vol fri already 11m today 
# [2] members report success see track record $itek $rprx $nete $cnet $zn $cwbr $inpx 

removePunctWords <- function(x) { 
    gsub(pattern = "\\$", "", x) 
} 
data.corpus1 <- 
    tm_map(data.corpus1, 
     content_transformer(removePunctWords)) 
inspect(data.corpus1[1:2]) 
# <<SimpleCorpus>> 
# Metadata: corpus specific: 1, document level (indexed): 0 
# Content: documents: 2 
# 
# [1] rprx loading mid .60's, think potential. 12m vol fri already 11m today 
# [2] members report success see track record itek rprx nete cnet zn cwbr inpx 
+0

我不是最好的正則表達式,但也許是「。」?例如:'gsub(pattern =「\\ $。*」,「」,x)'? – shea

+0

@shea在第一個$之後會殺死所有的東西。您只需要消除$和立即出現的單詞字符。 – G5W

+0

@ G5W感謝您解釋。我不知道這個「*」會是那麼貪婪。 – shea

回答

3

您的正則表達式只指定$。你需要包括這個詞的其餘部分。

removePunctWords <- function(x) { 
    gsub(pattern = "\\$\\w*", "", x) 
} 
+0

兩件事情,1)即使它們不存在於單詞的前面,它也會刪除所有的「$」。 2)可能需要在正則表達式的前面添加屏障字符以防止在單詞的中間匹配美元符號,例如, **賬單$ s **或** co $ t **。 OP沒有指定這些場景的預期行爲,但我認爲值得一提 – emilliman5

相關問題