Semantic Grep - Ferramenta de busca baseada em Word2Vec
(github.com/arunsupe)sgrepé uma ferramenta de linha de comando que realiza busca semântica para entradas de texto usando embeddings de palavras- Vai além da simples correspondência de strings e encontra ocorrências semanticamente semelhantes à consulta
- Foi projetada para oferecer uma experiência semelhante ao
grep
- Funcionalidades
- Busca semântica usando embeddings Word2Vec
- Possibilidade de definir limite de similaridade
- Exibição do contexto antes e depois das linhas correspondentes
- Saída com código de cores para palavras correspondentes e números de linha
- Suporte para leitura de arquivos ou da entrada padrão
- Configuração por arquivo JSON e argumentos de linha de comando
- Exemplo de uso
- Buscar palavras semelhantes a "death" em O Velho e o Mar de Hemingway, com contexto e números de linha:
curl -s 'https://gutenberg.ca/ebooks/hemingwaye-oldmanandthesea/…' \ | sgrep -C 2 -n -threshold 0.55 death - Este comando faz o seguinte:
- Obtém o texto de O Velho e o Mar do Project Gutenberg Canada
- Envia o texto por pipe para o
sgrep - Busca palavras semanticamente semelhantes a "death"
- Define o limite de similaridade como 0.55 (
-threshold 0.55) - Mostra 2 linhas de contexto antes e depois de cada correspondência (
-C 2) - Exibe os números de linha (
-n)
- A saída mostra a pontuação de similaridade, as palavras destacadas, o contexto e os números de linha
- Buscar palavras semelhantes a "death" em O Velho e o Mar de Hemingway, com contexto e números de linha:
- Modelo Word2Vec
- O
sgreprequer um modelo Word2Vec em formato binário. É possível usar um modelo pré-treinado, como o Word2Vec do Google, ou treinar o seu próprio com ferramentas comogensim - Baixe o arquivo
.binlocalmente e atualize oconfig.json- Word2Vec do Google: https://github.com/mmihaltz/word2vec-GoogleNews-vectors
- Versão enxuta: modelo GoogleNews-vectors-negative300-SLIM.bin.gz em https://github.com/eyaler/word2vec-slim/ (graças ao eyaler)
download-model.shé um script auxiliar simples que salva um pequeno modelo word2vec hospedado por eyaler no diretóriomodels/googlenews-slim/
- O
Resumo do GN⁺
sgrepé uma ferramenta que usa embeddings de palavras para buscar termos semanticamente semelhantes em textos- Oferece uma experiência de uso parecida com a do
grep, mas vai além da simples correspondência de strings - Usa um modelo Word2Vec para avaliar similaridade e pode ser usada de forma flexível com várias opções de configuração
- Pode ser útil em tarefas de análise de texto e processamento de linguagem natural, especialmente quando é necessária busca baseada em contexto
1 comentários
Comentários no Hacker News
Compartilhando algumas pequenas dicas ao ler o código
Essa ideia parece muito útil e dá vontade de saber por que eu não pensei nisso antes
Já existe uma ferramenta e uma empresa chamadas semgrep
Isso seria muito útil se a ferramenta conseguisse lidar com frases descritivas ou compostas
Ferramenta muito legal
Essa ferramenta é muito legal e eu realmente quero experimentá-la
Sugere o fltr como ferramenta semelhante
Muito legal, e fica a dúvida se também é possível pesquisar nomes de arquivos
Acabei descobrindo uma ferramenta muito legal