Configurare la classificazione semantica e restituire didascalia nei risultati della ricerca
Questo articolo illustra come richiamare una classificazione semantica su un set di risultati, promuovendo i risultati più pertinenti semanticamente all'inizio dello stack. È anche possibile ottenere didascalia semantiche, con evidenziazioni sui termini e le frasi più rilevanti e risposte semantiche.
Prerequisiti
Un servizio di ricerca nel livello Basic, Standard (S1, S2, S3) o Archiviazione livello Ottimizzato (L1, L2), soggetto alla disponibilità dell'area.
Classificazione semantica abilitata nel servizio di ricerca.
Indice di ricerca esistente con contenuto RTF. La classificazione semantica si applica ai campi di testo (nonvector) e funziona meglio sul contenuto informativo o descrittivo.
Scegliere un client
Scegliere un client di ricerca che supporti la classificazione semantica. Di seguito sono riportate alcuni opzioni:
- portale di Azure, usando progettazione indici per aggiungere una configurazione semantica.
- Visual Studio Code con il client REST
- Azure SDK per .NET
- Azure SDK per Python
- Azure SDK per Java
- Azure SDK per JavaScript
Aggiungere una configurazione semantica
Una configurazione semantica è una sezione dell'indice che stabilisce gli input dei campi per la classificazione semantica. È possibile aggiungere o aggiornare una configurazione semantica in qualsiasi momento, senza alcuna ricompilazione necessaria. Se si creano più configurazioni, è possibile specificare un valore predefinito. In fase di query specificare una configurazione semantica in una richiesta di query o lasciarla vuota per usare l'impostazione predefinita.
Una configurazione semantica ha un nome e le proprietà seguenti:
Proprietà | Caratteristiche |
---|---|
Campo Titolo | Stringa breve, idealmente sotto 25 parole. Questo campo può essere il titolo di un documento, il nome di un prodotto o un identificatore univoco. Se non si dispone di un campo appropriato, lasciarlo vuoto. |
Campi contenuto | Blocchi di testo più lunghi in formato in linguaggio naturale, soggetti ai limiti massimi di input dei token nei modelli di Machine Learning. Esempi comuni includono il corpo di un documento, la descrizione di un prodotto o un altro testo in formato libero. |
Campi parola chiave | Elenco di parole chiave, ad esempio i tag di un documento o un termine descrittivo, ad esempio la categoria di un elemento. |
È possibile specificare un solo campo titolo, ma è possibile avere il numero di campi di contenuto e parola chiave desiderati. Per i campi contenuto e parola chiave, elencare i campi in ordine di priorità perché i campi con priorità inferiore potrebbero essere troncati.
In tutte le proprietà di configurazione semantica, i campi assegnati devono essere:
- Attributi come
searchable
eretrievable
- Stringhe di tipo
Edm.String
,Collection(Edm.String)
, sottocampi stringa diCollection(Edm.ComplexType)
Accedere al portale di Azure e passare a un servizio di ricerca con classificazione semantica abilitata.
Da Indici nel riquadro di spostamento a sinistra aprire un indice.
Selezionare Configurazioni semantiche e quindi Aggiungi configurazione semantica.
Viene visualizzata la pagina Nuova configurazione semantica con le opzioni per la selezione di un campo titolo, campi di contenuto e campi di parole chiave. Sono idonei solo i campi stringa ricercabili e recuperabili. Assicurarsi di elencare i campi del contenuto e i campi delle parole chiave in ordine di priorità.
Selezionare OK per salvare le modifiche.
Eseguire la migrazione dalle versioni di anteprima
Se il codice di classificazione semantica usa le API di anteprima, questa sezione illustra come eseguire la migrazione a versioni stabili. È possibile controllare i log delle modifiche per verificare la disponibilità generale:
- 2023-11-01 (REST)
- Log delle modifiche di Azure SDK per .NET (11.5)
- Log delle modifiche di Azure SDK per Python (11.4)
- Log delle modifiche di Azure SDK per Java (11.6)
- Log delle modifiche di Azure SDK per JavaScript (12.0)
Modifiche al comportamento:
A partire dal 14 luglio 2023, il ranker semantico è indipendente dal linguaggio. Può rieseguire risultati composti da contenuti multilingue, senza pregiudizi verso una lingua specifica. Nelle versioni di anteprima, la classificazione semantica deprezza i risultati in modo diverso dalla lingua specificata dall'analizzatore di campi.
Nella versione 2021-04-30-Preview e in tutte le versioni successive, per l'API REST e tutti i pacchetti SDK destinati alla stessa versione:
semanticConfiguration
(in una definizione di indice) definisce i campi di ricerca usati nella classificazione semantica. In precedenza nell'API REST 2020-06-30-Preview,searchFields
(in una richiesta di query) veniva usata per specificare il campo e la definizione delle priorità. Questo approccio funzionava solo nel 2020-06-30-Preview ed è obsoleto in tutte le altre versioni.
Passaggio 1: Rimuovere queryLanguage
Il motore di classificazione semantica è ora indipendente dal linguaggio. Se queryLanguage
è specificato nella logica di query, non viene più usato per la classificazione semantica, ma si applica comunque alla correzione ortografica.
Mantenere queryLanguage
se si usa il correttore ortografico e se il valore della lingua è supportato dal correttore ortografico. Il controllo ortografico ha una disponibilità limitata in tutte le lingue.
In caso contrario, eliminare queryLanguage
.
Passaggio 2: Sostituire searchFields
con semanticConfiguration
Se il codice chiama l'API REST 2020-06-30-Preview o i pacchetti BETA SDK destinati a tale versione dell'API REST, è possibile usare searchFields
in una richiesta di query per specificare campi semantici e priorità. Nelle versioni beta iniziali, searchFields
aveva un doppio scopo, vincolando la query iniziale ai campi elencati in searchFields
e impostando anche la priorità dei campi se è stata usata la classificazione semantica. Nelle versioni successive, searchFields
mantiene lo scopo originale, ma non viene più usato per la classificazione semantica.
Mantenere searchFields
le richieste di query se si usa per limitare la ricerca full-text all'elenco dei campi denominati.
Aggiungere un semanticConfiguration
oggetto a uno schema di indice per specificare la priorità dei campi, seguendo le istruzioni riportate in questo articolo.
Passaggi successivi
Testare la configurazione semantica eseguendo una query semantica.