Normalização do árabeCompatible with Milvus 3.0.0+
O filtro « arabic_normalization » é um filtro de tokens integrado para texto em árabe. Normaliza as variantes de letras específicas do árabe e remove os sinais opcionais que podem fazer com que termos árabes equivalentes pareçam diferentes durante a análise do texto.
Configuração
Para texto em árabe, utilize o arabic na maioria dos casos. O analisador integrado inclui este filtro juntamente com a tokenização padrão, a conversão para minúsculas, a normalização de dígitos decimais, o stemming árabe e a remoção de palavras-vazio em árabe. Utilize o « arabic_normalization » diretamente apenas quando precisar de criar um pipeline de analisadores personalizado.
Para utilizar o filtro « arabic_normalization » num analisador personalizado, adicione-o à secção « filter » em analyzer_params:
analyzer_params = {
"tokenizer": "standard",
"filter": ["arabic_normalization"],
}
O filtro « arabic_normalization » não possui parâmetros configuráveis.
O filtro aplica as seguintes transformações:
Transformação |
De |
Para |
|---|---|---|
Variantes de Hamza + Alef |
|
|
Teh Marbuta |
|
|
Alef Maksura |
|
|
Harakat |
|
Removido |
Tatweel / Kashida |
|
Removido |
O filtro opera sobre tokens gerados pelo tokenizador. A configuração acima é, intencionalmente, um exemplo de analisador personalizado e não inclui o pipeline completo de processamento do árabe.
Exemplos
Antes de aplicar a configuração do analisador ao esquema da sua coleção, verifique o seu comportamento utilizando o método run_analyzer.
Configuração do analisador
analyzer_params = {
"tokenizer": "standard",
"filter": ["arabic_normalization"],
}
Verificação utilizando run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "آدم أحمد إسلام مدرسة كبرى كِتَابٌ عـــربي"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
Resultado esperado
['ادم', 'احمد', 'اسلام', 'مدرسه', 'كبري', 'كتاب', 'عربي']