创建拼写检查器你好,
我从互联网上下载了一些文本文件,并打算对它们进行一些文本分析。 然而,它们到处都是拼写错误,我想在将它们输入文本资源管理器平台之前尽可能多地整理它们。 最明显的首要任务是尽可能多地自动更正这些错别字。
为此,我需要一个相对全面的常用词列表来比较我的文件。 MS Word 的拼写检查器必须有权访问此类列表。 我不知道该列表是 MS Word 的组成部分还是只是 Windows 的标准组件 - 但无论哪种方式,有谁知道我是否可以直接从 JMP 访问该列表?
在相关点上,我如何着手计算任何拼写错误的单词和拼写正确的英语单词列表之间的“最佳匹配”? 我毫不怀疑有很多方法可以做到这一点,但必须有一些相当标准的方法。 (我对正则表达式不够熟悉,不知道这是否是解决此类问题的方法,但如果我必须学习它,那么我会的。)
非常感谢。
回复:创建拼写检查器非常感谢所有回复此主题的人:每个建议都已真的有帮助。 我将分配一些时间来研究 Levenshtein 距离,看看可以用它做什么(脚本将是无价的);还有 Shortest Edit Script() 函数,它看起来好像非常有用。 根据收到的建议,我不会花时间在 Regex 上,但我可能会研究编写 Word 宏的可能性——我们会看看它是如何进行的。 我还想到有人可能已经在 R 中解决了这个问题,在这种情况下,互联网上可能有一些东西可以通过 JMP 的 R 相关函数导入。 有很多途径可以探索,但我会将问题标记为已解决。
再一次,非常感谢一个和所有。
回复:创建拼写检查器仅供参考。 附件是一个脚本,它定义了一个名为计算LevenshteinDistance()并包括多个示例和描述最短的编辑脚本()功能。 它还包括查找最长公共序列的示例。
此脚本是作为清理文本的额外示例编写的,记录在第 9 章JSL Companion,JMP 脚本语言的应用,第 2 版,因为我们发现它是一个有趣的功能。
清理调查或评论列(不是整个文档)时,列重新编码可能有用。
回复:创建拼写检查器对于单词比较,您可以使用 Levenshtein 距离。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")
{{"Common", "maint"}, {"Insert", "en"}, {"Common", "a"}, {"Remove", "i"}, {"Common",
"n"}, {"删除", "en"}, {"通用", "ce"}}
编辑脚本描述了这两个词的不同之处。 您可以使用插入和删除的字符数创建一个指标。
回复:创建拼写检查器两件事情:
1. LaTeX 社区有许多单词列表,可以与 IDE 中的嵌入式拼写检查器一起使用。 您也许可以使用其中之一。
2. 与其尝试破解自己的拼写检查器,不如尝试直接连接到 GNU Aspell。 它非常可靠(我相信它足够聪明,可以忽略代码)。 不知道你会如何做到这一点,但你可以通过 Python 调用或其他方式来完成它。
您可以在此处定向到单词列表和 Aspell 应用程序: http://aspell.net .
米
回复:创建拼写检查器我不知道如何从 JMP 访问外部列表,例如 MS Word 中的拼写检查器可能使用的列表。 此外,该列表由检查器使用。 检查器很难在 JMP 脚本中复制。
您可能会考虑为 MS Word 创建一个 Visual Basic 宏,以便在将原始文本文件导入 JMP 数据表进行分析之前检查和纠正拼写。
正则表达式是匹配模式的一种强大方法,但如果应用于查找所有拼写错误的单词并返回正确单词的任务,这种方法会变得很麻烦。