创建拼写检查器你好,
我从互联网上下载了一些文本文件,并打算对它们运行一些文本分析。 然而,它们充满了拼写错误,我想在将它们输入文本资源管理器平台之前尽可能地整理它们。 最明显的首要任务是自动纠正尽可能多的拼写错误。
为此,我需要一个相对全面的常用单词列表来比较我的文件。 MS Word 的拼写检查器必须能够访问这样的列表。 我不知道该列表是 MS Word 的组成部分还是只是 Windows 的标准组件 - 但无论哪种方式,有人知道我是否可以直接从 JMP 访问该列表吗?
在相关的一点上,我如何开始计算任何拼写错误的单词和拼写正确的英语单词列表之间的“最佳匹配”? 我毫不怀疑有很多方法可以做到这一点,但必须有一些相当标准的方法。 (我对正则表达式不太熟悉,不知道这是否是解决此类问题的方法,但如果我必须学习它,那么我会的。)
非常感谢。
回复:创建拼写检查器非常感谢所有回复此帖子的人:每条建议都已采纳真的有帮助。 我将分配一些时间来研究编辑距离,看看可以用它做什么(为此脚本将是无价的);还有 Shortest Edit Script() 函数,它看起来好像非常有用。 根据收到的建议,我不会花时间在 Regex 上,但我很可能会研究编写 Word 宏的可能性 - 我们会看看它是如何进行的。 我还想到,有人很可能已经在 R 中解决了这个问题,在这种情况下,互联网上可能有一些东西可以通过 JMP 的 R 相关函数导入。 有很多途径可以探索,但我会将问题标记为已解决。
再次非常感谢所有人。
回复:创建拼写检查器仅供参考。 附件是一个定义函数的脚本计算编辑距离()并包括多个示例和描述最短的编辑脚本()功能。 它还包括查找最长公共序列的示例。
该脚本是作为清理文本的额外示例而编写的,记录在第 9 章中JSL Companion,JMP 脚本语言的应用,第二版,因为我们发现这是一个有趣的功能。
清理调查或评论栏(不是整个文档)时,栏重新编码可能有用。
回复:创建拼写检查器对于单词比较,您可以使用编辑距离。https://en.wikipedia.org/wiki/Levenshtein_distance
回复:创建拼写检查器这个博客中的一些单词列表信息https://community.jmp.com/t5/Uncharted/WordNet/ba-p/28984
很久以前,使用过这样的算法:
在已知好词的关联数组中查找该词。 如果查找失败,请尝试一些删除 s、ing、ed 后缀的规则,然后再次查找。如果仍然失败,则通过查找由交换字母对、插入字母、删除字母形成的相似单词来提出建议。
我认为使用外部程序的建议是合适的,并且我认为正则表达式大多不是答案。 您也许可以在文本资源管理器中使用重新编码,尽管这将是一个手动过程。
这是 JMP 中的一个有趣的函数,如果您决定制定自己的解决方案,该函数可能会很有用
shortest edit script("maintainence","maintenance")
{{"通用", "维护"}, {"插入", "en"}, {"通用", "a"}, {"删除", "i"}, {"通用",
"n"}, {"删除", "en"}, {"通用", "ce"}}
编辑脚本是对两个词不同之处的描述。 您可以使用插入和删除的字符数创建一个指标。
回复:创建拼写检查器两件事情:
1. LaTeX 社区有许多单词列表,可以与 IDE 中的嵌入式拼写检查器一起使用。 您也许可以使用其中之一。
2. 您可以尝试直接连接 GNU Aspell,而不是尝试破解您自己的拼写检查器。 它非常可靠(我相信它足够聪明,可以忽略代码)。 不确定你会如何做到这一点,但你也许可以通过 Python 调用或其他方式来完成它。
您可以在此处定向到单词列表和 Aspell 应用程序: http://aspell.net 。
中号
回复:创建拼写检查器我不知道如何从 JMP 访问外部列表,例如 MS Word 中的拼写检查器可能使用的列表。 此外,该列表由检查器使用。 该检查器很难在 JMP 脚本中复制。
您可能会考虑为 MS Word 创建 Visual Basic 宏,以在将原始文本文件导入 JMP 数据表进行分析之前检查并更正原始文本文件中的拼写。
正则表达式是一种匹配模式的强大方法,但如果应用于查找所有拼写错误的单词并返回正确单词的任务,该方法会变得很麻烦。