自动纠错拼写检查程序

9
我有一个TSV(制表符分隔值)文件需要进行拼写检查,以查找错别字和组合词(例如,“I love you”和“Iloveyou”)。
我已在我的计算机上安装了Aspell,并可以使用aspell()函数在R中运行它。
files <- "train2.tsv"
 res <- aspell(files)
 str(res)
 summary(res)

然而,在R中运行它的输出仅为一串拼写错误的单词和可能的建议。
>  summary(res)
Possibly mis-spelled words:
 [1] "amant"        "contaneir"    "creat"        "ddition"      "EssaySet"     "EssayText"    "experiament"  "expireiment"  "expirement"  
[10] "Fipst"        "infomation"   "Inorder"      "measureing"   "mintued"      "neccisary"    "officialy"    "renuminering" "rinsen"      
[19] "sticlenx"     "sucessfully"  "tipe"         "vineager"     "vinigar"      "yar"   

>  str(res)
Classes ‘aspell’ and 'data.frame':      27 obs. of  5 variables:
 $ Original   : chr  "EssaySet" "EssayText" "expirement" "expireiment" ...
 $ File       : chr  "train2.tsv" "train2.tsv" "train2.tsv" "train2.tsv" ...
 $ Line       : int  1 1 3 3 3 3 3 3 6 6 ...
 $ Column     : int  4 27 27 108 132 222 226 280 120 156 ...
 $ Suggestions:List of 27
  ..$ : chr  "Essay Set" "Essay-Set" "Essayist" "Essays" ...
  ..$ : chr  "Essay Text" "Essay-Text" "Essayist" "Sedatest" ...
  ..$ : chr  "experiment" "excrement" "excitement" "experiments" ...
  ..$ : chr  "experiment" "experiments" "experimenter" "excrement" ...
  ..$ : chr  "Amandy" "am ant" "am-ant" "Amanda" ...
  ..$ : chr  "year" "ya" "Yard" "yard" ...

有没有办法让aspell(或任何其他拼写检查器)自动纠正拼错的单词?
1个回答

9

看起来你可以做以下事情:

s = load_up_users_dictionary()

for word in text_to_check:
    if word not in s:
        new_words = s.suggest( word )
        replace_incorrect_word( word, new_words[0] )#Pick the first word from the returned list.

快速浏览文档,这似乎是自动使用建议的正确拼写所要做的事情。

http://0x80.pl/proj/aspell-python/index-c.html

编辑: 意识到您可能不在寻找Python代码,但作为问题标记了Python,这将是使用Python最简单的方法。可能有更有效的方法来实现它,但现在时间已经很晚了,这是首先想到的方法。


我标记了Python,因为我知道它有一些很好的自然语言处理库,并且认为如果R无法实现,它将是一个很好的备选方案。谢谢。 - screechOwl
好的,在那种情况下,上述方法是一个简单的做法,文档中可能有一个隐藏的宝石可以完全满足你的需求。 - sean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接