我正在 Excel 中编写一个简单的 OCR 检查器,它将 OCR 输出文本文件解析为单词,并使用Wiktionary检查所选的单词以查看它们是否是有效的单词。
我知道有复杂的字典查找系统可以用 Python 运行,但我试图在不接触 Python 的情况下完成这项工作。因此,我使用 Excel 和Wiktionary作为一种简单的方法。
我有一个名为的 VBA 函数vHttpRequest()
,它访问 URL 并可以返回执行此操作后返回的状态。例如,如果单词是“apple”,则我运行:
vHttpRequest("https://en.wiktionary.org/wiki/apple", , "status")
这给了我状态 200,表明“apple”是一个有效的词。
如果 OCR 省略了“three apples”中的空格,那么我运行:
vHttpRequest("https://en.wiktionary.org/wiki/threeapples", , "status")
返回 404,表明“threeapples”不是一个有效的单词。
效果很好。它正确地识别了大多数 OCR 错误。过程中有两个细节:Wiktionary的搜索区分大小写,并且不包含所有格,因此如果我得到 404,那么我会再次尝试转换为小写,并删除最后两个字母(如果它们是“'s”或“s'”)。
问题是当我得到一个在其他语言中有效的单词时。Wiktionary将其页面拆分为包含该单词的每种语言的锚点。因此,例如,如果单词是“ther”,则该单词在其他三种语言中有效,但在现代英语中无效。所以我想运行如下命令:
vHttpRequest("https://en.wiktionary.org/wiki/ther#English", , "status")
测试Wiktionary的“ther”页面是否有英语部分。问题是上面的调用返回 200,因为“ther”的页面存在。状态检查忽略了 URL 中的锚点“#English”。
有没有办法测试该锚点是否存在于该页面上?也欢迎提出更好的解决方案。