Algoritmos Base
Os responsáveis por comparar estatisticamente os vetores das palavras, fonemas e blocos.
Bases: ABC
Interface base para algoritmos de cálculo de similaridade entre duas strings.
Source code in src/text_similarity/core/base.py
compare(text1, text2)
abstractmethod
Recebe dois textos pré-processados e retorna um score numérico.
A pontuação varia estritamente de 0.0 (totalmente diferente) a 1.0 (idêntico).
Bases: SimilarityAlgorithm
Calcula similaridade cosseno utilizando TF-IDF.
Bom para avaliar sobreposição de vocabulário e contexto global.
Source code in src/text_similarity/core/cosine.py
__init__(ngram_range=(1, 2))
Inicializa configurações de tokenização TF-IDF.
compare(text1, text2)
Extrai os tokens TF-IDF e os avalia por distância Vetorial.
Source code in src/text_similarity/core/cosine.py
Bases: SimilarityAlgorithm
Calcula similaridade baseada em Distância de Edição / Levenshtein.
Utiliza o módulo ultrarrápido rapidfuzz.
Source code in src/text_similarity/core/rapidfuzz_cmp.py
__init__(method='ratio')
Inicialização baseada na estratégia de distância a ser utilizada.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
method
|
str
|
'ratio' (Levenshtein puro) ou 'partial_ratio' (Bom para pedaços inclusos em palavras maiores), 'token_sort_ratio' (Não importa a ordem das palavras). |
'ratio'
|
Source code in src/text_similarity/core/rapidfuzz_cmp.py
compare(text1, text2)
Aciona a comparação dependendo do método parametrizado retornando o score.
Source code in src/text_similarity/core/rapidfuzz_cmp.py
Bases: SimilarityAlgorithm
Calcula similaridade fonética baseada em heurísticas para PT-BR.
Utilizamos um algoritmo de substituição fonética rudimentar que cobre 80% dos casos de erros de digitação auditivos em português (s/ss/z/c/ç), aliado à distância Levenshtein.
Source code in src/text_similarity/core/phonetic.py
compare(text1, text2)
Trata cada palavra do texto para fonemas, as une e calcula Levenshtein.
Source code in src/text_similarity/core/phonetic.py
Bases: SimilarityAlgorithm
Calcula uma similaridade combinada (ponderada) utilizando múltiplos.
Modelos disponíveis (TF-IDF Cosseno, Distância de Edição e Fonética).
Source code in src/text_similarity/core/hybrid.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | |
__init__(weights=None, target_entities=None)
Inicializa agregador de distâncias computacionais simultâneas.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
weights
|
dict[str, float] | None
|
Dicionário identificando o peso relativo de cada
algoritmo no resultado final. Padrão:
|
None
|
target_entities
|
list[str] | None
|
Lista de tipos de entidade para filtrar no
EntityIntersectionSimilarity (ex: ["productmodel"]).
Se None, considera qualquer tag no padrão |
None
|
Source code in src/text_similarity/core/hybrid.py
compare(text1, text2)
Soma iterativamente as ponderações de cada algoritmo.
Aplica avaliação de short-circuit via algoritmo de entidade se este apontar similaridade total (1.0).
Source code in src/text_similarity/core/hybrid.py
explain(text1, text2)
Funcionalidade especial sugerida: explica a contribuição de cada.