AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1850521
Accepted
NewSites
NewSites
Asked: 2024-07-29 01:03:22 +0800 CST2024-07-29 01:03:22 +0800 CST 2024-07-29 01:03:22 +0800 CST

我可以通过编程来测试网页上的锚点吗?

  • 772

我正在 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”。

有没有办法测试该锚点是否存在于该页面上?也欢迎提出更好的解决方案。

html
  • 2 2 个回答
  • 70 Views

2 个回答

  • Voted
  1. Best Answer
    Silbee
    2024-07-29T21:10:22+08:002024-07-29T21:10:22+08:00

    您尝试过使用他们的 API 吗?他们最近添加了一个 REST API,您可以使用它来查询单词 (链接),然后使用它来获取格式化的 JSON,然后您可以轻松地对其进行解析。

    查找单词“Arbiter”(在多种语言中都有)的示例如下

    https://en.wiktionary.org/api/rest_v1/page/definition/arbiter
    

    结果将有多个条目,但正如您所看到的,您只需查看“en”块是否存在即可知道它是否是一个英文单词。

    • 4
  2. NewSites
    2024-07-30T07:32:58+08:002024-07-30T07:32:58+08:00

    我接受了@Silbee 的回答,因为它提供了一个很好的解决方案——比我要求的锚点检测更好——解决了从维基词典以编程方式确定某个单词在英语中是否有效的问题。

    然而,我还找到了一个更好的解决方案,可以解决更普遍的问题,即通过编程确定一个单词在英语中是否有效。

    我向 ChatGPT 提交了与此处相同的问题。它没有告诉我有关Wiktionary可用的 API ,但确实提出了一些替代解决方案。其中大多数需要使用 python,但有一个不需要。那就是使用CheckSpellingMS Word 的方法。(“方法”是在对象上运行的函数。)它可以在 Word VBA 中直接在 MS Word 文档上运行,但也可以通过从 Excel VBA 中的子程序调用它在 Excel 中的一系列单元格上运行。巧妙的技巧。这样做而不是 Wiktionary查找的优势在于它在我的计算机上本地运行,因此我不需要为每个单词执行 http 请求。当查找多个单词时,这可能会产生很大的不同。(我正在运行 Office 2021 的本地安装,而不是在线版本。)

    如果您要尝试此操作,请注意一件事:CheckSpellingMS Word 和 Excel 中至少有五种方法,Word 中有三种,Excel 中有两种。在这五种方法中,其中三种是范围或文档的方法,它们都会打开校对对话框,因此不适合以编程方式使用。适合编程的两种方法是我上面链接到的 Word 应用程序的方法和Excel 应用程序的方法。乍一看,在 Excel 中工作时,使用 Excel 方法似乎更好,但 ChatGPT 告诉我它的功能不如 Word 版本。

    ChatGPT 详细说明了这两种方法之间的差异。我问它是如何知道的,因为 MS 文档中没有提到差异。它说:“详细差异……通常不会记录在一个特定的来源中。相反,它们是从各种来源、文档和实践经验中推断出来的。您可以采取以下步骤来查找有关此主题的更多信息:”然后它给了我五种来源的列表,包括官方文档、支持论坛、书籍、博客和文章。我想我可以把这个答案解释为“祝你好运,你这个虚弱的人,试着消化我以前告诉你的关于这些差异的大量信息。”

    • 1

相关问题

  • 如何将 .htaccess 与离线 html 一起使用?

  • 如何重定向到html中的父目录

  • Wget 生成文件而不是 HTML

  • 如何使用 Excel 的 Power Query From Web 选项从各个站点提取新闻标题,并实时保存数据?

  • 这个文本框上的“Tx”按钮是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve