Distância de edição de Levenshtein
Calcule a distância Levenshtein por pontos de código Unicode sem normalizar strings.
def edit_distance(a, b):
if not isinstance(a, str) or not isinstance(b, str):
raise ValueError("text.required")
previous = list(range(len(b) + 1))
for i, left in enumerate(a, 1):
current = [i]
for j, right in enumerate(b, 1):
current.append(min(current[-1] + 1, previous[j] + 1,
previous[j - 1] + (left != right)))
previous = current
return previous[-1]Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Projeto
Teste entrada vazia, substituição de emoji e formas compostas ou decompostas sem prometer equivalência visual.
def edit_distance(a, b):
if not isinstance(a, str) or not isinstance(b, str):
raise ValueError("text.required")
previous = list(range(len(b) + 1))
for i, left in enumerate(a, 1):
current = [i]
for j, right in enumerate(b, 1):
current.append(min(current[-1] + 1, previous[j] + 1,
previous[j - 1] + (left != right)))
previous = current
return previous[-1]Defina o significado de uma correspondência de texto antes de programá-la
GlyphMetrum é um ambiente de programação para Windows no qual você usa um modelo de IA conectado para examinar mudanças no processamento de texto do projeto. Comece descrevendo a decisão que o aplicativo precisa tomar: comparar uma entrada, sugerir um rótulo próximo ou rejeitar um valor que não se qualifica. Peça ao assistente que examine a função relevante e seu chamador antes de propor mudanças, para que a conversa conecte detalhes de implementação ao comportamento visível.
O exemplo distance.py oferece um ponto de partida concreto para essa discussão por meio de uma comparação de edições de caracteres. É um exemplo de contexto de projeto, não um mecanismo de busca ou recurso de correspondência incorporado ao GlyphMetrum. Seu aplicativo pode precisar de decisões próprias sobre maiúsculas e minúsculas, normalização e o grau aceitável de diferença. Revise essas decisões separadamente do mecanismo usado para calcular uma distância.
Teste o comportamento resultante com exemplos cujos resultados esperados você possa explicar, incluindo texto vazio e strings visualmente semelhantes representadas de maneiras diferentes. Verifique como o chamador trata empates ou a ausência de correspondência aceitável. Conecte um endpoint suportado compatível com OpenAI ou da Anthropic, adicionando credenciais quando exigidas; um modelo sem restrições só pode ser selecionado quando oferecido. Restrições do modelo, ferramentas disponíveis e limites de contexto continuam dependendo do serviço configurado. O ambiente de programação ajuda a organizar o trabalho enquanto você decide se o resultado atende ao aplicativo.
Decisões de comparação de texto para uma tarefa de programação
O exemplo define uma política completa de correspondência?
Não. Ele fornece um mecanismo de comparação para discussão. Seu aplicativo deve decidir quais transformações são permitidas e qual resultado se qualifica como correspondência; depois, deve testar essas decisões pelo chamador, em vez de depender apenas da distância.
A uniformização de maiúsculas e minúsculas deve ser adicionada automaticamente?
Somente quando corresponder ao comportamento pretendido. Alguns identificadores diferenciam maiúsculas de minúsculas, enquanto rótulos exibidos ao usuário podem não diferenciar. Dê ao assistente exemplos representativos e revise onde ocorre qualquer normalização para que ela não afete texto não relacionado.
Como posso verificar sugestões ambíguas?
Inclua casos em que vários candidatos sejam igualmente próximos e defina como o aplicativo deve responder. Examine a lógica de seleção além da função de comparação, pois uma distância correta não escolhe uma política útil de desempate.
GlyphMetrum é um serviço pronto de busca aproximada?
Não se afirma que exista esse serviço. É um ambiente de programação no qual você pode discutir e revisar código de processamento de texto no seu projeto. Indexação, comportamento do aplicativo e qualquer infraestrutura de busca continuam sendo responsabilidades da sua implementação.
GlyphMetrum · Atualizado 2026-10-25