当涉及非英文字母时,qdapRegex :: rm_nchar_words返回不同的结果?

时间:2019-06-11 15:23:19

标签: r nlp qdap qdapregex

请帮助我解决以下困惑:

qdapRegex::rm_nchar_words("è ûé", "1,2")
[1] "è ûé"

qdapRegex::rm_nchar_words('k ku ppp d', "1,2")
[1] "ppp"

为什么在第一行代码中它没有以“”响应,而在第二行中它却按预期运行。 我在这里想念什么?我唯一能想到的是,在代码的第一行中,字符串是由非英文字母构建的。

有解决方案吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

如包裹作者所提及:

它使用\w定义被定义为[A-Za-z0-9_]的字母。 您需要编写自己的自定义正则表达式来处理非ASCII字母

更新:

在Win 7机器上,输出符合预期。

使用模式"[\\pL_]"(任何语言的任何单词)解决问题的一种可能方法

rm_nchar_words("è ûé", "1,2", pattern = "[\\pL_]")

Win机器上的语言环境:

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252  

我将继续对此进行调查,并发布最新答案。

更新2:

rm_nchar_words("è ûé", "1,2", pattern = "[\\pL_]")
""

可在我的Ubuntu 18.04上运行。