标签: spelling

真实世界的错字统计?

我在哪里可以找到一些真实的拼写错误统计数据?

我试图将人们的输入文本与内部对象进行匹配,人们往往会犯拼写错误.
有两种错误:

  1. typos - "Helllo"而不是"Hello"/"Satudray"而不是"Saturday"等.
  2. Spelling - "Shikago"而不是"芝加哥"

我使用 Damerau-Levenshtein距离进行拼写错误,使用Double Metaphone进行拼写(Python实现此处此处).

我想专注于Damerau-Levenshtein(或简单地说edit-distance).教科书实现总是使用'​​1'来表示删除,插入替换和转置的权重.虽然这很简单并且允许很好的算法但它与"现实"/"真实世界概率"不匹配.

例子:

  • 我确定"Helllo"("Hello")的可能性大于"Helzlo",但它们距离都是1个编辑距离.
  • 在QWERTY键盘上,"Gello"比"Qello"更接近"Hello".
  • Unicode音译:"慕尼黑"和"慕尼黑"之间的"真实"距离是多少?

删除,插入,替换和转置的"真实世界"权重应该是什么?

即使是Norvig非常酷的拼写校正器也使用非加权编辑距离.

BTW-我确定权重需要是函数而不是简单的浮点数(根据上面的例子)......

我可以调整算法,但在哪里可以"学习"这些权重?我无法访问Google规模的数据 ...

我应该猜猜他们吗?

编辑 - 尝试回答用户问题:

  • 由于上述原因,我当前的非加权算法在遇到拼写错误时经常失败."星期四回归":每个"真人"都可以很容易地告诉周四比周二更有可能,但他们都是1编辑距离!(是的,我会记录并衡量我的表现).
  • 我正在开发NLP旅行搜索引擎,因此我的词典包含~25K目的地(预计将增长到100K),时间表达式~200(预期1K),人物表达式~100(预期300),货币表达式~100(预期500 ),"胶水逻辑词"("从","美丽","公寓")~2K(预计10K)等...
  • 对于上述每个单词组,编辑距离的使用是不同的.我尝试"在明显时自动纠正",例如,与字典中的另一个单词相距1个编辑距离.我有许多其他手动调整的规则,例如Double Metaphone修复,距离长度> 4的字典单词不超过2个编辑距离...当我从现实世界输入中学习时,规则列表继续增长.
  • "你的门槛中有多少对字典条目?":嗯,这取决于"花式加权系统"和现实世界(未来)输入,不是吗?无论如何,我进行了大量的单元测试,因此我对系统所做的每一项更改都会使其更好(当然,基于过去的输入).大多数6个字母的单词距离与另一个字典条目相距1个编辑距离的单词在1个编辑距离内.
  • 今天,当有两个字典条目与输入相同的距离时,我尝试应用各种统计数据来更好地猜测用户的意思(例如,巴黎,法国更有可能出现在我的搜索中,而不是Pārīz,伊朗).
  • 选择错误单词的成本是将半随机(通常是荒谬的)结果返回给最终用户并可能失去客户.不理解的成本稍微低一些:用户将被要求改写.
  • 复杂的成本值得吗?是的,我确定是的.你不会相信人们在系统中投入的拼写错误,并希望它能理解,我确信可以使用Precision和Recall中的提升.

python fuzzy-search machine-learning spelling

41
推荐指数
3
解决办法
6877
查看次数

如何在Rmarkdown中使用拼写检查?

我想用Rmarkdown写一份报告.但是,我有点担心我的拼写.我希望我的Rstudio中安装了一个包可以自动帮我拼写检查.

那么,是否有这样的包或有办法解决这个问题?

r spelling rstudio r-markdown

35
推荐指数
1
解决办法
2万
查看次数

Visual Studio 2013拼写检查程序

我有阅读障碍症,并且正在与使用IDE Visual Studio 2013的其他学生开始我的第一个合作项目.我担心我的错过拼写可能会给团队的其他成员带来错误和烦恼,所以我希望将拼写错误降到最低.

我独自工作的项目不是一个问题,好像我拼写错误的单词我倾向于以同样的方式在整个程序中拼写错误 - 但我觉得我仍然可以使用拼写检查器来解决这些问题.

我有一个谷歌,但只发现了一些插件,其中大部分是过时的.任何帮助深表感谢.

spell-checking spelling visual-studio misspelling visual-studio-2013

17
推荐指数
2
解决办法
1万
查看次数

如何使用键盘快捷键更正谷歌文档中的拼写?

我希望能够使用键盘快捷键用谷歌推荐的更正替换谷歌文档中拼写错误的单词,而不必将鼠标悬停在单词上,右键单击它,然后选择更正的单词。

有没有办法做到这一点?(我在 Mac 上工作)。

gmail keyboard-shortcuts shortcut spelling google-docs

17
推荐指数
3
解决办法
7305
查看次数

我可以在表单元素上配置spellcheck属性使用的字典语言吗?

我需要将spellcheck属性添加到一些<textarea><input>元素.我的问题是:"英语的版本是否 spellcheck 符合可配置性?" 我在澳大利亚,我们使用英国英语.我的理解是拼写检查器默认配置为美式英语.

它与lang最初在html元素上设置的属性有什么关系吗?

html textarea input spelling lang

14
推荐指数
1
解决办法
558
查看次数

如何在默认的Eclipse XML编辑器中显示拼写建议列表?

我启用了默认的Eclipse拼写检查程序.当我在Java编辑器中工作时检测到拼写错误时,我可以Ctrl-1用来显示建议的拼写更正列表.

但是,当我在默认的XML编辑器中工作时,Ctrl-1似乎不起作用.拼写错误的单词(在评论中大多数)用红色正确加下划线,但我似乎无法弄清楚如何获得拼写建议列表.

如果这是特定于平台的问题,我正在使用OpenJDK 6在Ubuntu 10.06上运行Eclipse Helios.

eclipse xml-editor spelling

11
推荐指数
1
解决办法
4036
查看次数

在R中匹配文本字符串时处理错误的拼写

我正在收集调查数据(使用开放数据工具包),我的现场团队,祝福他们的心,有时会对人名的拼写有点创意.所以我有一个"正确的"响应者名称,以及链接到"家庭成员名称"变量的一些记录的年龄变量.有许多不同年龄的家庭成员.我想要受访年龄.

这是一些说明我的问题的虚假数据:

#the respondent
    r = data.frame(name = c("Barack Obama", "George Bush", "Hillary Clinton"))
#a male member
    m = data.frame(name = c("Barack Obama","George", "Wulliam Clenton"), age = c(55,59,70)); m$name=as.character(m$name)
#a female member
    f = data.frame(name = c("Michelle O","Laura Busch", "Hillary Rodham Clinton"), age = c(54,58,69)); f$name=as.character(f$name)
#if the responsent is the the given member, record their age.  if not, NA
    a = cbind(
        ifelse(r$name==m$name,m$age,NA)
        ,ifelse(r$name==f$name,f$age,NA)
        )
    #make a function for plyr that gives me the age of the matched respondent …
Run Code Online (Sandbox Code Playgroud)

merge r character spelling misspelling

10
推荐指数
2
解决办法
5685
查看次数

红宝石中简单的拼写检查方法/宝石?

我正在寻找一种相对快速的方法来检查单词是否拼写错误,无论是使用gem还是API.

我尝试过使用几种宝石 - raspell,ffi-aspell,hunspell-ffi,spell_cheker和spellchecker--每种都有不同的错误.

我对ruby很新,并希望有一个简单的解决方案(我正在处理大量的短文本文件,并且想要计算错误拼写的单词的百分比),这不包括从头开始构建的东西.

尝试ffi-aspell时,我收到以下错误:

/Users/ntaylorthompson/.rvm/gems/ruby-1.9.2-p320/gems/ffi-aspell-0.0.3/lib/ffi/aspell/speller.rb:121: [BUG] Segmentation fault
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-darwin11.4.0]

-- control frame ----------
c:0005 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC  :speller_check
c:0004 p:0113 s:0013 b:0013 l:000012 d:000012 METHOD /Users/ntaylorthompson/.rvm/gems/ruby-1.9.2-p320/gems/ffi-aspell-0.0.3/lib/ffi/aspell/speller.rb:121
c:0003 p:0049 s:0007 b:0007 l:0005a8 d:0005d0 EVAL   ffi-aspell_test.rb:5
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0005a8 d:0005a8 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
ffi-aspell_test.rb:5:in `<main>'
/Users/ntaylorthompson/.rvm/gems/ruby-1.9.2-p320/gems/ffi-aspell-0.0.3/lib/ffi/aspell/speller.rb:121:in `correct?'
/Users/ntaylorthompson/.rvm/gems/ruby-1.9.2-p320/gems/ffi-aspell-0.0.3/lib/ffi/aspell/speller.rb:121:in `speller_check'

-- C level backtrace information -------------------------------------------

[NOTE]
You may …
Run Code Online (Sandbox Code Playgroud)

ruby spell-checking aspell spelling hunspell

9
推荐指数
1
解决办法
3996
查看次数

PyCharm拼写检查:如何删除添加到字典中的单词(错误地)?

用右键单击添加单词 - >拼写 - >'错字:将'foo'保存到字典'去?如何从那里删除它们?

ide spell-checking spelling pycharm

9
推荐指数
1
解决办法
889
查看次数

为Elasticsearch规范英国和美国英语

在Elasticsearch中是否存在使英国和美国英语正常化的最佳实践?

使用同义词令牌过滤器需要非常长的配置文件.在英国和美国英语中实际上有几千个拼写不同的单词,而且几乎不可能找到一个非常全面的单词列表.这里有近2000个单词列表,但它还远未完成.

最好是,我想创建一个ES分析器/过滤器,其中包含将美国转换为英国英语的规则.也许这是更好的方法,但我不知道从哪里开始 - 我需要哪种类型的过滤器?它不必涵盖所有内容 - 它应该只是标准化大多数搜索术语.例如"灰色" - "灰色","颜色" - "颜色","中心" - "中心"等.

spelling normalize filter analyzer elasticsearch

8
推荐指数
1
解决办法
832
查看次数