在R中使用hunspell使用多个词典

时间:2018-05-04 06:28:12

标签: r dictionary hunspell spelling

当我在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?

中组合两个词典

1 个答案:

答案 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)