Configurare il classificatore semantico e restituire i sottotitoli nei risultati della ricerca
La classificazione semantica esegue l'iterazione su un set di risultati iniziale, applicando una metodologia di classificazione L2 che promuove i risultati più pertinenti semanticamente all'inizio dello stack. È anche possibile ottenere didascalie semantiche, con evidenziazioni sui termini e sulle frasi più rilevanti e risposte semantiche.
Questo articolo illustra come configurare un indice di ricerca per la riclassificazione semantica.
Prerequisiti
Servizio di ricerca di livello Basic o superiore, soggetto alla disponibilità dell'area.
Classificatore semantico abilitato nel servizio di ricerca.
Indice di ricerca esistente con contenuto in formato RTF. La classificazione semantica si applica ai campi di tipo stringa (non vettoriale) e si adatta meglio ai contenuti informativi o descrittivi.
Scegliere un client
Per aggiungere una configurazione semantica, è possibile usare uno degli strumenti e SDK seguenti:
- 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 che sia necessario ricompilarla. Se si creano più configurazioni, è possibile specificare un valore predefinito. Durante l'esecuzione di una query, è possibile specificare una configurazione semantica in una richiesta di query o lasciare vuoto il campo per usare il valore predefinito.
La configurazione semantica ha un nome e le proprietà seguenti:
Proprietà | Caratteristiche |
---|---|
Campo Titolo | Una stringa breve, idealmente con meno di 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 del contenuto | Frammenti di testo più lunghi redatti 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 delle parole chiave | Un elenco di parole chiave, come i tag di un documento, o un termine descrittivo, ad esempio la categoria di un elemento. |
È possibile specificare un solo campo titolo, ma il numero di campi per il contenuto e le parole chiave si possono scegliere. Elencare i campi di contenuto e parole chiave in ordine di priorità, poiché quelli a bassa priorità potrebbero essere eliminati.
In tutte le proprietà di configurazione semantica, i campi assegnati devono essere:
- Attribuiti come
searchable
eretrievable
- Stringhe di tipo
Edm.String
,Collection(Edm.String)
, sottocampi della stringa diEdm.ComplexType
Accedere al portale di Azure e passare a un servizio di ricerca con classificazione semantica abilitata.
Nella sezione 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 del campo titolo, dei campi per il contenuto e dei campi per le parole chiave. Sono idonei solo i campi stringa ricercabili e recuperabili. Assicurarsi di elencare i campi per il contenuto e le parole chiave in ordine di priorità.
Selezionare OK per salvare le modifiche.
Eseguire la migrazione dalle versioni di anteprima
Nel caso in cui il codice di classificazione semantica usi le API di anteprima, in questa sezione viene spiegato come eseguire la migrazione alle versioni stabili. È possibile controllare i log delle modifiche per verificare la disponibilità generale:
- 2024-07-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 del comportamento:
A partire dal 14 luglio 2023, il classificatore semantico è indipendente dalla lingua. È infatti in grado di riclassificare i risultati composti da contenuti multilingue, senza alcun pregiudizio nei confronti di una lingua specifica. Nelle versioni di anteprima, la classificazione semantica priva di priorità i risultati che differiscono dalla lingua specificata dall'analizzatore di campo.
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: in una definizione di indice,
semanticConfiguration
definisce i campi di ricerca usati nella classificazione semantica. In precedenza, in una richiesta di query dell'API REST 2020-06-30-Preview,searchFields
veniva usato per specificare i campi e assegnare le priorità. Questo approccio è stato usato solo per la versione 2020-06-30-Preview e risulta obsoleto per tutte le altre versioni.
Passaggio 1: rimuovere queryLanguage
Il motore di classificazione semantica è ora indipendente dalla lingua. Se specificato nella logica di query, queryLanguage
non viene più usato per la classificazione semantica. Tuttavia, è comunque possibile applicarlo alla correzione ortografica.
Tenere queryLanguage
se si usa il correttore ortografico e il valore della lingua è supportato dal correttore. Il controllo ortografico è disponibile solo per alcune lingue.
Altrimenti, 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 che searchFields
venga usato in una richiesta di query per specificare campi semantici e priorità. Nelle versioni beta iniziali, searchFields
aveva un duplice scopo: limitare la query iniziale ai campi elencati in searchFields
e impostare la priorità dei campi, nel caso in cui si utilizzasse la classificazione semantica. Nelle versioni successive, searchFields
mantiene il suo scopo originario, ma non viene più utilizzato per la classificazione semantica.
Tenere searchFields
nelle richieste di query, se lo si usa per limitare la ricerca full-text all'elenco dei campi denominati.
Aggiungere un semanticConfiguration
a uno schema dell’indice per specificare la priorità dei campi, seguendo le istruzioni riportate in questo articolo.
Passaggi successivi
Testare la configurazione semantica eseguendo una query semantica.