Depois de dividir seus documentos em uma coleção de partes, a próxima etapa é enriquecer cada parte limpando e aumentando as partes com metadados. Limpar as partes permite que você obtenha melhores correspondências para consultas semânticas em uma pesquisa de vetor. Adicionar informações permite que você dê suporte a pesquisas além de pesquisas semânticas das partes. Tanto a limpeza quanto o aumento envolvem a extensão do esquema da parte.
Este artigo discute várias maneiras de aumentar suas partes, incluindo algumas operações de limpeza comuns que você pode executar em partes para melhorar as comparações de vetor e descreve alguns campos de metadados comuns que você pode adicionar aos seus blocos para aumentar seu índice de pesquisa.
Figura 1. Enriquecendo partes com metadados
Limpeza
O agrupamento de dados dá suporte à carga de trabalho em seus esforços para encontrar as partes mais relevantes, normalmente por meio da vetorização dessas partes e do armazenamento delas em um banco de dados vetor. Uma pesquisa de vetor otimizada retorna apenas as linhas nesse banco de dados que têm as correspondências semânticas mais próximas à consulta. O objetivo de limpar os dados para dar suporte a correspondências de proximidade eliminando possíveis diferenças que não são materiais para a semântica do texto. Veja a seguir alguns procedimentos comuns de limpeza.
Nota
Você desejará retornar a parte original e impura como o resultado da consulta, portanto, você adicionará um campo adicional para armazenar os dados limpos e vetoriais.
- minúsculas - Letras minúsculas permitem que palavras maiúsculas, como palavras no início de uma frase, correspondam a essas mesmas palavras dentro de uma frase. Inserções normalmente diferenciam maiúsculas de minúsculas, o que significa que "Cheetah" e "cheetah" resultariam em um vetor diferente para a mesma palavra lógica. Por exemplo, para a consulta inserida: "o que é mais rápido, um guepardo ou um puma?" A seguinte inserção: "os guepardos são mais rápidos do que os pumas" é uma correspondência mais próxima do que a inserção de "Guepardos são mais rápidos que pumas". Algumas estratégias minúsculas reduzem todas as palavras, incluindo substantivos adequados, enquanto outras estratégias incluem apenas letras minúsculas nas primeiras palavras em uma frase.
- Remover palavras irrelevantes - Palavras irrelevantes são palavras como "a", "an" e "the" que normalmente ocorrem em frases. Você pode remover palavras irrelevantes para reduzir a dimensionalidade do vetor resultante. Remover palavras irrelevantes permitiria que tanto "um guepardo é mais rápido do que um puma" e "o guepardo é mais rápido que o puma" sejam ambos vetoriaismente iguais a "puma mais rápido guepardo". No entanto, é importante entender que algumas palavras irrelevantes têm significado semântico. Por exemplo, "não" pode ser considerado uma palavra parada, mas manteria um significado semântico significativo. É importante testar para ver o efeito de remover palavras irrelevantes.
- Corrigir erros de ortografia – uma palavra incorreta não corresponde à palavra escrita corretamente no modelo de inserção. Por exemplo, "cheatah" (sic) não é o mesmo que "cheetah" na inserção. Você deve corrigir erros de ortografia para resolver esse desafio.
- Remover caracteres unicode – a remoção de caracteres Unicode pode reduzir o ruído em suas partes e reduzir a dimensionalidade. Como palavras irrelevantes, alguns caracteres Unicode podem conter informações relevantes. É importante testar para entender o impacto da remoção de caracteres Unicode.
- de Normalização - Normalizar o texto em padrões como expandir abreviações, converter números em palavras e expandir contrações como "estou" para "estou" pode ajudar a aumentar o desempenho das pesquisas de vetor.
Aumentando partes
Pesquisas semânticas em relação às partes vetorizadas funcionam bem para alguns tipos de consultas, mas não tão bem para outras. Dependendo dos tipos de consultas que você precisa dar suporte, talvez seja necessário aumentar suas partes com informações adicionais. Os campos de metadados adicionais são todos armazenados na mesma linha que suas inserções e podem ser usados na solução de pesquisa como filtros ou como parte da pesquisa.
Figura 2. Uso de metadados aumentados na solução de pesquisa
As colunas de metadados que você precisa adicionar dependem de decisões específicas do seu domínio de problema. Isso inclui o tipo de dados que você tem e os tipos de consultas que você deseja dar suporte. Você precisa analisar a experiência do usuário, os dados disponíveis e a qualidade do resultado que você está tentando alcançar. A partir daí, você pode determinar quais metadados podem ajudá-lo a atender aos requisitos da carga de trabalho.
Veja a seguir alguns campos de metadados comuns, juntamente com o texto em partes original, algumas diretrizes sobre seus possíveis usos e ferramentas ou técnicas que normalmente são usadas para gerar o conteúdo dos metadados.
- ID – ID é um campo de metadados chave usado para identificar exclusivamente uma parte. Uma ID exclusiva é útil no processamento para determinar se uma parte já existe no repositório ou não. Uma ID pode ser um hash de algum campo de chave. Tools: biblioteca de hash
- título - Um título é um valor de retorno útil para uma parte. Ele fornece um resumo rápido do conteúdo na parte. O resumo também pode ser útil para consultar com uma pesquisa indexada, pois pode conter palavras-chave para correspondência. Tools: modelo de linguagem
- Resumo – o resumo é semelhante ao título, pois é um valor de retorno comum e pode ser usado em pesquisas indexadas. Os resumos geralmente são mais longos que o título. Tools: modelo de linguagem
- Reformulação de de partes – a reformulação de uma parte pode ser útil como um campo de pesquisa de vetor porque a reformulação captura variações na linguagem, como sinônimos e parafraseia. Tools: modelo de linguagem
- palavras-chave – pesquisas de palavra-chave são boas para dados que não são condizenciais, para pesquisar uma correspondência exata e quando um termo ou valor específico é importante. Por exemplo, um fabricante de automóveis pode ter revisões ou dados de desempenho para cada um de seus modelos por vários anos. A revisão do produto X para o ano 2009" é semanticamente como "Revisão do produto X para 2010" e "Revisão do produto Y para 2009". Nesse caso, você estaria melhor correspondendo em palavras-chave para o produto e o ano. Tools: modelo de linguagem, RAKE, KeyBERT, MultiRake
- Entidades – Entidades são informações específicas, como pessoas, organizações e locais. Assim como as palavras-chave, as entidades são boas para pesquisas de correspondência exatas ou quando entidades específicas são importantes. Tools: SpaCy, Stanford Named Entity Recognizer (SNER), scikit-learn, Natural Language Toolkit (NLTK).
- de texto de parte limpa – o texto da parte limpa. Tools: modelo de linguagem
- Perguntas que a parte pode responder – às vezes, a consulta inserida e a parte inserida não é uma ótima correspondência. Por exemplo, a consulta pode ser pequena em relação ao tamanho da parte. Talvez seja melhor formular as consultas que a parte pode responder e fazer uma pesquisa de vetor entre a consulta real do usuário e as consultas pré-formatadas. Tools: modelo de linguagem
- de origem – a origem da parte pode ser valiosa como um retorno para consultas. Ele permite que o querier cite a origem original.
- Language – o idioma da parte pode ser bom como um filtro em consultas.
Aumentando a economia
O uso de alguns modelos de linguagem para aumentar partes pode ser caro. Você precisa calcular o custo de cada enriquecimento que está considerando e multiplicá-lo pelo número estimado de partes ao longo do tempo. Você deve usar essas informações, juntamente com o teste desses campos enriquecidos como parte da pesquisa para tomar uma boa decisão de negócios.