AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 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

Posso testar programaticamente uma âncora em uma página da web?

  • 772

Estou escrevendo um verificador de OCR simples no Excel que analisa o arquivo de texto de saída do OCR em palavras e usa o Wikcionário para verificar uma seleção de palavras para ver se são palavras válidas.

Eu sei que existem sistemas sofisticados de pesquisa de dicionário executados em Python, mas estou tentando fazer isso sem precisar entrar no Python. Então, estou usando o Excel e o Wikcionário para uma abordagem simples.

Eu tenho uma função VBA chamada vHttpRequest()que acessa uma URL e pode retornar o status retornado ao fazer isso. Por exemplo, se a palavra for "maçã", executo:

vHttpRequest("https://en.wiktionary.org/wiki/apple", , "status")

O que me dá o status 200, indicando que “maçã” é uma palavra válida.

Se o OCR omitiu o espaço em "três maçãs", executo:

vHttpRequest("https://en.wiktionary.org/wiki/threeapples", , "status")

Que retorna 404, indicando que “três maçãs” não é uma palavra válida.

Isso está funcionando muito bem. Ele identifica corretamente a maioria dos erros de OCR. Dois detalhes no processo são que a pesquisa do Wikcionário diferencia maiúsculas de minúsculas e não inclui possessivos, então se eu obtiver um 404, tento novamente com a conversão para minúsculas e com a remoção das duas últimas letras se forem "'s " ou "s'".

O problema é quando recebo uma palavra que é válida em algum outro idioma. O Wikcionário divide suas páginas com âncoras para cada idioma em que a palavra existe. Assim, por exemplo, se a palavra for “ther”, essa palavra é válida em três outras línguas, mas não no inglês moderno. Então, eu gostaria de executar algo como:

vHttpRequest("https://en.wiktionary.org/wiki/ther#English", , "status")

Para testar se a página do Wikcionário para "ther" tem uma seção para inglês. O problema é que a chamada acima retorna 200 porque a página para “ther” existe. A verificação de status ignora a âncora "#English" na URL.

Existe uma maneira de testar se essa âncora existe nessa página? Também aberto a sugestões de melhores soluções para o problema.

html
  • 2 2 respostas
  • 70 Views

2 respostas

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

    Você já tentou usar a API deles? Eles adicionaram recentemente uma API REST que você pode usar para consultar palavras ( link ) que você pode usar para obter JSON formatado de volta, que você pode analisar facilmente.

    Um exemplo de pesquisa da palavra "Árbitro" (encontrada em vários idiomas) seria assim

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

    O resultado terá múltiplas entradas, mas como você pode ver, basta verificar se o bloco "en" existe para saber se é uma palavra em inglês ou não.

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

    Aceitei a resposta do @Silbee porque ela fornece uma boa solução - melhor do que a detecção de âncora que solicitei - para o problema de determinar programaticamente no Wikcionário se uma palavra é válida em inglês.

    No entanto, também encontrei uma solução ainda melhor para o problema mais geral de determinar programaticamente se uma palavra é válida em inglês.

    Enviei a mesma pergunta que enviei aqui para ChatGPT. Ele não me falou sobre a API disponível para o Wikcionário , mas sugeriu algumas soluções alternativas. A maioria deles exigia o uso de python, mas um não. Isso foi usar o CheckSpellingmétodo do MS Word . (Um "método" é uma função executada em um objeto.) Isso pode ser executado em um documento do MS Word diretamente no Word VBA, mas também pode ser executado em um intervalo de células no Excel, chamando-o de um sub no Excel VBA. Truque bacana. A vantagem de fazer isso em vez da pesquisa no Wikcionário é que ela é executada localmente no meu computador, então não tenho a sobrecarga de fazer uma solicitação http para cada palavra. Isso pode fazer uma grande diferença ao procurar mais do que algumas palavras. (Estou executando uma instalação local do Office 2021, não uma versão online.)

    Uma coisa a ser observada se você tentar fazer isso: existem pelo menos cinco CheckSpellingmétodos no MS Word e Excel, três no Word e dois no Excel. Dos cinco, três deles são métodos de um intervalo ou documento, e todos abrem uma caixa de diálogo de revisão, portanto não são adequados para uso programático. Os dois que são adequados para programação são o método do aplicativo Word ao qual vinculei acima e um método do aplicativo Excel . À primeira vista, ao trabalhar no Excel, pareceria melhor usar o método Excel, mas ChatGPT me disse que é menos capaz que a versão Word.

    ChatGPT detalhou as diferenças entre os dois métodos. Perguntei como ele sabia disso, já que não há menção de diferença nos documentos do MS. Dizia: “As diferenças detalhadas… normalmente não são documentadas em uma fonte específica. Em vez disso, são inferidos de várias fontes, documentação e experiência prática. Aqui estão algumas etapas que você pode seguir para encontrar mais informações sobre este tópico:” Em seguida, ele me deu uma lista de cinco tipos de fontes, incluindo documentação oficial, fóruns de suporte, livros, blogs e artigos. Acho que posso parafrasear essa resposta como “Boa sorte, seu humano fraco, tentando digerir a amplitude de informações que costumava lhe contar sobre essas diferenças”.

    • 1

relate perguntas

  • Como uso .htaccess com html offline?

  • Como faço para redirecionar para um diretório pai em html

  • Wget gerando arquivos em vez de HTMLs

  • Como posso usar a opção Power Query From Web do Excel para extrair manchetes de notícias de vários sites e manter os dados em tempo real?

  • O que é este botão "Tx" nesta caixa de texto?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve