You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用hunspell多词典时遭遇en_AU词典拼写检查异常

这确实挺让人摸不着头脑的!我帮你梳理下问题根源和几个可行的解决思路:

问题根源分析

核心问题出在不同地区的hunspell词典对英语缩写(收缩形式)的收录差异上。美式英语(en_US)词典里收录了Couldn't这类常见缩写,但澳大利亚英语(en_AU)的默认词典可能没有把这类收缩形式作为完整有效词纳入。

当hunspell用en_AU检查时,它会把Couldn't拆分成Couldn和t两个部分,而Couldn本身并不是一个合法的英文单词,所以就被标记成了拼写错误。

解决办法

这里有几个实用的方案可以解决这个问题:

  • 手动补充缩写到忽略列表
    把澳大利亚英语里常用的收缩缩写加到你的dic_ignore向量中,比如:

    dic_ignore <- c(dic_ignore, "Couldn't", "Didn't", "Wouldn't", "Isn't")
    

    这样hunspell就会自动跳过这些词的检查。

  • 自定义扩展en_AU词典
    你可以创建一个自定义词典文件,添加需要的缩写,然后和默认en_AU词典一起加载:

    # 先创建一个文本文件(比如au_custom_words.txt),每行写一个需要添加的词:
    # Couldn't
    # Didn't
    # Wouldn't
    
    # 加载自定义词典
    au_custom_dict <- hunspell_dictionary("en_AU", add_words = readLines("au_custom_words.txt"))
    
    # 使用自定义词典检查
    hunspell("Couldn't be more delighted.", dict = au_custom_dict, ignore = dic_ignore)
    
  • 先检查分词逻辑
    你可以先用hunspell_split()看看en_AU词典是怎么拆分你的文本的,确认是不是拆分规则导致的问题:

    hunspell_split("Couldn't be more delighted.", dict = "en_AU")
    

    如果确实是拆分出了Couldn这种奇怪的片段,也可以考虑先手动替换收缩形式(比如把Couldn't换成Could not)再检查,不过这种方法比较繁琐,只适合短文本场景。

内容的提问来源于stack exchange,提问作者Ankhnesmerira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:58:22