当我在hunspell中选择不同的词典时,我正在观察奇怪的行为。我想用澳大利亚英语拼写我的文字。但是当我选择“en_AU”字典时,我会收到其他没有意义的拼写错误。
> require(hunspell)
> hunspell("Couldn't be more delighted." , dict = "en_AU", ignore = dic_ignore)
[[1]]
[1] "Couldn"
> hunspell("Couldn't be more delighted." , dict = "en_US", ignore = dic_ignore)
[[1]]
character(0)
我不明白为什么en_AU字典会这样表现。
如何合并两个词典? 我尝试将它们组合起来不起作用:
#this doesn't work
> reviews <- reviews[, possible_errors_2 := hunspell(review_parsed, dict = c("en_US", "en_AU"), ignore = dic_ignore)]
Warning message:
In if (!file.exists(dict)) { :
the condition has length > 1 and only the first element will be used
编辑:我想有两个嵌套问题:1)为什么第一个字典不能正常工作? “不能”在澳大利亚英语中有效&lt;:{ 2)有没有办法在R?
中组合两个词典答案 0 :(得分:0)
就这样,hunspell不支持字典向量。您可以跟踪get_dict函数并添加支持https://github.com/ropensci/hunspell/pull/37/commits/da358a972d29c4bd39cf39755fc013a931bf3aba,也可以将字典文件组合在一起。
trace(hunspell:::get_dict, edit = TRUE)
found <- file.exists(dict)
if(!all(found)){
dict[!found] <- sapply(paste0(sub("\\.(dic|aff)$", "", dict[!found]), ".dic"), find_in_dicpath)
}
normalizePath(dict, mustWork = TRUE)