私はgsub
を使用して、辞書のアイデアに従ってR内のベクトルの単語を置き換えます。つまり、与えられた単語(同義語)のセットsyn = c("Cash", "\\$")
は、単語(word = "MONEY"
)に置き換えられます。これまでのところ、私は同義語を置き換えるために、これを使用しています正規表現R:単語境界と区切り文字
text <- c("I spent 100$", "Cash can be used", "Cashier doesnt count", "a separate $")
:
$ -signは英数字に添付されている場合に動作しますが、符号が分離されている場合は失敗しsyn <- c("Cash", "\\$")
word <- "MONEY"
regex <- paste0("\\b(", paste(syn, collapse = "|"), ")\\b")
# "\\b(Cash|\\$)\\b"
gsub(regex, word, text)
# "I spent 100MONEY" "MONEY can be used" "Cashier doesnt count" "a separate $"
。単語境界(\\b
)を放棄すると、$ -signが見つかりますが、 "キャッシャー"には "Cash"もあります。
私は単語境界を持つことができますが、1つの$記号を見つけることも知っていますか? PCRE正規表現と
だから、あなたが期待 '[1] "MONEY" は "別々のお金を"' "キャッシャーdoesntの数を" 使用することができ、 "私は100 $を費やしましたか"? –
ほとんどの場合、私は '' 100MONEY "、" MONEY使用可能 "、"キャッシャーdoesntカウント "、"別途金額 ")' – David
を期待しています。しかし、最初の文字列の '$'の前に数字が付きます。ここでは単語境界はどのように定義されていますか?文字の中にない? –