2017-10-09 9 views
-1

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

2つのこと、1)単語の前に存在しなくても、すべての '$ 'を削除します。 2)単語の途中でドル記号を一致させることを防ぐために、正規表現の先頭にバリア文字を追加する必要があります。 **請求書$ s **または** co $ t **。 OPはこれらのシナリオで予想される動作を指定していませんが、 – emilliman5

関連する問題