如何修改R语言tau包textcnt函数参数以保留撇号不拆分单词?
解决tau包textcnt函数保留含撇号单词的问题
问题核心是默认的split参数包含[:punct:],而撇号属于标点范畴,导致像"don't"这类单词被拆分为"don"和"t"。要同时实现保留单词内部撇号、拆分其他标点(&、>、"等)以及单独的撇号,可通过调整正则表达式实现:
可行代码示例
library(tau) text <- "I don't want the function to use the ' to split & > \" test" # 自定义split正则,排除单词内部撇号作为分隔符 textcnt(text, split = "[[:space:][:digit:]]+|[[:punct:]&&[^']]+", method = "string", n = 1L)
正则表达式说明
[[:space:][:digit:]]+:匹配连续的空格或数字,作为分隔符|:逻辑或,匹配任意一种分隔符规则[[:punct:]&&[^']]+:匹配除撇号外的连续标点符号,作为分隔符
效果验证
运行上述代码后,输出会保留完整的"don't",同时正确拆分单独的撇号、&、>、"等符号,不会将这些符号或拆分后的残片保留在结果中。
内容的提问来源于stack exchange,提问作者Alberto Llamas
相关产品推荐
相关产品推荐

