【发布时间】:2015-09-29 20:30:44
【问题描述】:
我正在使用 R 来标记一组文本;在标记化之后,我最终得到一个 char 向量,其中保留了标点符号、撇号和连字符。比如我有这个原文
txt <- "this ain't a Hewlett-Packard box - it's an Apple box, a very nice one!"
在标记化之后(我使用包 tm 中的 scan_tokenizer 执行)我得到以下字符向量
> vec1
[1] "this" "ain't" "a" "Hewlett-Packard"
[5] "box" "-" "it's" "an"
[9] "Apple" "box," "a" "very"
[13] "nice" "one!"
现在为了去掉标点符号,我做了以下操作
vec2 <- gsub("[^[:alnum:][:space:]']", "", vec1)
也就是说,我将所有不是字母数字值、空格和撇号的东西都替换为“”;然而这是结果
> vec2
[1] "this" "ain't" "a" "HewlettPackard" "box"
[6] "" "it's" "an" "Apple" "box"
[11] "a" "very" "nice" "one"
我想将连字符 sych 保留为“Hewlett-Pacakard”,同时摆脱单独的连字符。基本上,我需要一个正则表达式来排除 vec2 的 gsub 表达式中的 \w-\w 形式的连字符。
欢迎您提出建议
【问题讨论】: