Configurazione degli schemi di analisi del testo per Amazon CloudSearch - Amazon CloudSearch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione degli schemi di analisi del testo per Amazon CloudSearch

Amazon ti CloudSearch consente di configurare uno schema di analisi specifico per ogni lingua per ogni text campo. text-array Uno schema di analisi controlla il modo in cui i contenuti del campo vengono elaborati durante l'indicizzazione. Anche se le impostazioni predefinite di ogni lingua funzionano adeguatamente in molti casi, la regolazione delle opzioni di analisi ti permette di ottimizzare i risultati di ricerca in base alla tua conoscenza dei dati che stai cercando. Per un elenco di linguaggi supportati, consultare Lingue supportate.

Uno schema di analisi specifica la lingua del testo da elaborare e le seguenti opzioni di analisi:

  • Stemming algoritmico: specifica il livello di derivazione algoritmica da eseguire. I livelli di stemming disponibili variano a seconda della lingua.

  • Japanese Tokenization Dictionary: specifica le sostituzioni della tokenizzazione algoritmica durante l'elaborazione del giapponese. Il dizionario specifica il modo in cui particolari set di caratteri devono essere raggruppati in parole.

  • Dizionario Stemming: specifica le sostituzioni per i risultati dello stemming algoritmico. Il dizionario mappa specifiche parole correlate a una radice o una parola radice comune.

  • Stopwords: specifica le parole da ignorare durante l'indicizzazione e la ricerca.

  • Synonyms (Sinonimi): specifica le parole con lo stesso significato delle parole presenti nei dati e che dovrebbero produrre gli stessi risultati di ricerca.

Durante l'elaborazione del testo, i valori dei campi e i termini di ricerca vengono convertiti in lettere minuscole (case-folding), pertanto le stopword, le radici e i sinonimi non prevedono la distinzione tra maiuscole e minuscole. Per ulteriori informazioni su come Amazon CloudSearch elabora il testo durante l'indicizzazione e la gestione delle richieste di ricerca, consulta. Elaborazione di testo in Amazon CloudSearch

Devi specificare una lingua per ogni schema di analisi e configurare uno schema di analisi per ogni campo text e text-array. Quando configuri i campi tramite la CloudSearch console Amazon, lo schema di analisi utilizza per impostazione predefinita lo schema di _en_default_ analisi. Se non specifichi opzioni di analisi per uno schema di analisi, Amazon CloudSearch utilizza le opzioni predefinite per la lingua specificata. Per informazioni sulle impostazioni predefinite di ogni lingua, consultare Impostazioni specifiche della lingua.

Il modo più semplice per definire gli schemi di analisi è tramite la pagina Schemi di analisi nella CloudSearch console Amazon. Affinché lo schema di analisi abbia effetto, devi applicarlo a un campo. Puoi applicare uno schema di analisi a un campo dalla pagina Indexing Options (Opzioni di indicizzazione). Puoi anche definire gli schemi di analisi e configurarne uno per ogni campo tramite gli strumenti a riga di comando e gli SDK AWS.

Quando applichi un nuovo schema di analisi a un campo dell'indice o modifichi uno schema di analisi in uso, devi rebuild the index in modo esplicito in modo che le modifiche si riflettano nei risultati di ricerca.

Stemming su Amazon CloudSearch

Lo stemming è il processo di mappatura di parole correlate a una radice comune. Una radice solitamente è la radice o parola base da cui derivano le varianti. Ad esempio, run è la radice di running e ran. Lo stemming viene eseguito durante l'indicizzazione e al momento dell'esecuzione delle query. Lo stemming riduce il numero di termini che vengono inclusi nell'indice e semplifica le corrispondenze quando il termine di ricerca è una variante di un termine presente nei contenuti in cui si sta eseguendo la ricerca. Ad esempio, se mappi il termine running alla radice run e quindi cerchi il termine running, la richiesta restituisce i documenti che contengono sia run che running.

Amazon CloudSearch supporta sia dizionari di derivazione algoritmica che dizionari di derivazione esplicita. Per configurare lo stemming algoritmico devi specificare il livello di stemming che desideri utilizzare. I livelli di stemming algoritmico disponibili variano a seconda della lingua:

  • none (nessuno): disattiva lo stemming algoritmico

  • minimal (minimo): esegue lo stemming di base rimuovendo i suffissi plurali

  • light (leggero): punta alle desinenze dei nomi/aggettivi più comuni e ai suffissi derivati

  • full (completo): rimuove in modo aggressivo desinenze e suffissi

Oltre a controllare il livello di stemming algoritmico eseguito, puoi specificare un dizionario di stemming che mappi specifiche parole correlate a una radice comune. Puoi specificare il dizionario come oggetto JSON che contiene una raccolta di coppie stringa:valore che mappano un termine alla relativa radice, ad esempio {"term1": "stem1", "term2": "stem2", "term3": "stem3"}. Il dizionario di stemming viene applicato in aggiunta a qualsiasi stemming algoritmico. In questo modo puoi sostituire i risultati dello stemming algoritmico per correggere casi specifici di overstemming o understemming. Le dimensioni massime di un dizionario di stemming è di 500 KB. Le voci dei dizionari di stemming devono essere in lettere minuscole.

Per definire un dizionario di stemming personalizzato in uno schema di analisi, utilizza la chiave StemmingDictionary. Poiché passi il dizionario ad Amazon CloudSearch come stringa, devi evitare tutte le virgolette doppie all'interno della stringa. Ad esempio, il seguente schema di analisi definisce le radici di running e jumping:

{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "AlgorithmicStemming": "light", "StemmingDictionary": "{\"running\": \"run\",\"jumping\": \"jump\"}" } }

Se non specifichi il livello di derivazione algoritmica o un dizionario di derivazione algoritmica nel tuo schema di analisi, Amazon CloudSearch utilizza il livello di derivazione algoritmica predefinito per la lingua specificata. Sebbene lo stemming possa aiutare gli utenti a individuare i documenti pertinenti che altrimenti potrebbero essere esclusi dai risultati di ricerca, è possibile che si verifichi l'overstemming in troppe corrispondenze di dubbia rilevanza. Il livello predefinito dello stemming algoritmico configurato per ogni lingua funziona adeguatamente nella maggior parte dei casi d'uso. In generale, è meglio iniziare con il livello predefinito e in seguito apportare delle modifiche per ottimizzare la rilevanza dei risultati di ricerca per il tuo caso d'uso. Per informazioni sulle impostazioni predefinite di ogni lingua, consultare Impostazioni specifiche della lingua.

Stopwords su Amazon CloudSearch

Le stopword (eccezioni) sono parole che solitamente dovrebbero essere ignorate sia durante l'indicizzazione che durante la ricerca, in quanto insignificanti o talmente comuni che includerle significherebbe ottenere un numero massiccio di corrispondenze.

Durante l'indicizzazione, Amazon CloudSearch utilizza il dizionario stopword quando elabora text e inserisce campi. text-array Nella maggior parte dei casi, le stopword non sono incluse nell'indice. Il dizionario delle stopword viene anche utilizzato per filtrare le richieste di ricerca.

Un dizionario delle stopword è un array di termini JSON, ad esempio ["a", "an", "the", "of"]. Nel dizionario delle stopword deve essere elencata esplicitamente ciascuna parola che desideri ignorare. I caratteri jolly e le espressioni regolari non sono supportati.

Puoi utilizzare la chiave Stopwords per definire un dizionario delle stopword personalizzato in uno schema di analisi. Poiché passi il dizionario ad Amazon CloudSearch come stringa, devi evitare tutte le virgolette doppie all'interno della stringa. Ad esempio, il seguente schema di analisi configura le stopword a, an e the:

{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "Stopwords": "[\"a\",\"an\",\"the\"]" } }

Se non specifichi un dizionario di stopword nel tuo schema di analisi, Amazon CloudSearch utilizza il dizionario di stopword predefinito per la lingua specificata. Le stopword predefinite configurate per ogni lingua funzionano adeguatamente nella maggior parte dei casi d'uso. In generale, è meglio iniziare con il livello predefinito e in seguito apportare delle modifiche per ottimizzare la rilevanza dei risultati di ricerca per il tuo caso d'uso. Per informazioni sulle impostazioni predefinite di ogni lingua, consultare Impostazioni specifiche della lingua.

Sinonimi in Amazon CloudSearch

Puoi configurare i sinonimi dei termini che appaiono nei dati in cui stai eseguendo la ricerca. In questo modo, se un utente ricerca il sinonimo piuttosto che il termine indicizzato, i risultati includeranno i documenti che contengono il termine indicizzate. Ad esempio, potresti definire dei sinonimi personalizzati per eseguire le seguenti operazioni:

  • Mappare gli errori ortografici comuni alla versione corretta

  • Definire i termini equivalenti, ad esempio film e movie

  • Mappare un termine generale a uno più specifico, ad esempio fish e barracuda

  • Mappare più parole a una singola parola o viceversa, ad esempio tool box e toolbox

Quando definisci un sinonimo, questo viene aggiunto all'indice nel punto in cui appare il token di base. Ad esempio, se definisci fish come sinonimo di barracuda, il termine fish viene aggiunto a ogni documento contenente il termine barracuda. L'aggiunta di un grande numero di sinonimi può aumentare le dimensioni dell'indice e della latenza delle query (i sinonimi aumentano il numero di corrispondenze, che più aumenta e più lunga diventa l'elaborazione dei risultati).

Il dizionario dei sinonimi viene utilizzato durante l'indicizzazione per configurare le mappature dei termini presenti nei campi di testo. Nelle richieste di ricerca non avviene alcuna elaborazione dei sinonimi. Per impostazione predefinita, Amazon CloudSearch non definisce alcun sinonimo.

Puoi specificare i sinonimi in due modi:

  • Come gruppo di combinazioni, dove ogni termine nel gruppo è considerato un sinonimo degli altri.

  • Come alias di un termine specifico. Un alias è considerato un sinonimo del termine specificato, ma il termine non è considerato un sinonimo dell'alias.

Un dizionario dei sinonimi viene specificato come oggetto JSON che definisce gli alias e i gruppi di sinonimi. Il valore di groups è un insieme di array in cui ogni array secondario è un gruppo di combinazioni. Il valore di aliases è un oggetto che contiene una raccolta di coppie stringa:valore in cui la stringa specifica un termine e l'array di valori specifica ogni sinonimo di quel termine. L'esempio seguente include entrambi gli alias e i gruppi di combinazioni:

{ "groups": [["1st", "first", "one"], ["2nd", "second", "two"]], "aliases": { "youth": ["child", "kid", "boy", "girl"], "adult": ["men", "women"] } }

Entrambi i gruppi e gli alias supportano i sinonimi composti da più parole. Nell'esempio seguente, i sinonimi composti da più parole sono utilizzati in un gruppo di combinazioni e in un alias:

{ "groups": [["tool box", "toolbox"], ["band saw", "bandsaw"]], "aliases": { "workbench": ["work bench"]} }

Puoi utilizzare la chiave Synonyms per definire un dizionario dei sinonimi personalizzato in uno schema di analisi. Poiché passi il dizionario ad Amazon CloudSearch come stringa, devi evitare tutte le virgolette doppie all'interno della stringa. Ad esempio, il seguente schema di analisi configura gli alias del termine youth:

{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "Synonyms": "{\"aliases\": {\"youth\": [\"child\",\"kid\"]}}" } }

Configurazione degli schemi di analisi utilizzando la console Amazon CloudSearch

Puoi definire schemi di analisi dal riquadro Schemi di analisi nella CloudSearch console Amazon.

Per definire uno schema di analisi
  1. Apri la CloudSearch console Amazon all'indirizzo https://console.aws.amazon.com/cloudsearch/home.

  2. Dal riquadro di navigazione a sinistra, scegli Domini.

  3. Scegli il nome del tuo dominio per aprirne la configurazione.

  4. Vai alla scheda Opzioni di ricerca avanzate.

  5. Nel riquadro Schemi di analisi, scegli Aggiungi schema di analisi.

  6. Specificate un nome per lo schema di analisi e selezionate una lingua.

  7. Seleziona Avanti.

  8. Nei tre passaggi successivi, configurate le opzioni di testo, stopword, stemming e sinonimo dello schema. Puoi configurare singole stopword, radici e sinonimi oppure modificare direttamente i dizionari visualizzati. I dizionari sono formattati in formato JSON. Le stopword sono specificate come un array di stringhe. Le radici sono specificate come oggetto contenente una o più coppie chiave:valore. Anche gli alias dei sinonimi sono specificati come oggetti JSON on una o più coppie chiave:valore, dove i valori dell'alias sono specificati come un array di stringhe Un gruppo di sinonimi è specificato come array JSON (il dizionario dei sinonimi è un insieme di array).

    Se hai selezionato il giapponese come lingua, hai anche la possibilità di specificare un dizionario di tokenizzazione personalizzato che sostituisce la tokenizzazione predefinita di frasi specifiche. Per ulteriori informazioni, consulta Personalizzazione della tokenizzazione del giapponese.

  9. Nella pagina di riepilogo, esaminate la configurazione dello schema di analisi e scegliete Salva.

Importante

Per utilizzare uno schema di analisi, devi applicarlo a uno o più campi text o text-array e creare nuovamente l'indice. È possibile configurare lo schema di analisi di un campo dalla scheda Opzioni di indicizzazione. Per ricostruire l'indice, scegli Azioni, Esegui indicizzazione.

Configurazione degli schemi di analisi utilizzando AWS CLI

Utilizzate il aws cloudsearch define-analysis-scheme comando per definire le opzioni di elaborazione del testo specifiche della lingua, incluse le opzioni di derivazione, le stopword e i sinonimi. Per ulteriori informazioni sull'installazione e la configurazione di AWS CLI, consultare la Guida per l'utente di AWS Command Line Interface.

Puoi specificare uno schema di analisi come parte della configurazione di ciascun campo text o text-array campo. Per ulteriori informazioni, consulta configure indexing options.

Per definire uno schema di analisi
  • Eseguire il comando aws cloudsearch define-analysis-scheme e specificare l'opzione --analysis-scheme e l'oggetto JSON che contiene le opzioni di analisi. Lo schema di analisi deve essere nel formato JSON valido. Le coppie di chiave e valore delle opzioni di analisi devono essere racchiuse tra virgolette e tutte le virgolette nei valori delle opzioni devono essere precedute da una barra rovesciata. Per il formato delle opzioni di analisi, vedere define-analysis-schemenella Guida ai comandi. AWS CLI Per ulteriori informazioni sulla definizione delle opzioni di stemming, stopword e sinonimi, consultare Configurazione degli schemi di analisi.

    Se come lingua specifichi il giapponese (ja), puoi anche specificare un dizionario di tokenizzazione personalizzato che sostituisca la tokenizzazione predefinita di frasi specifiche. Per ulteriori informazioni, consulta Personalizzazione della tokenizzazione del giapponese.

    Suggerimento

    Il modo più semplice per configurare uno schema di analisi con AWS CLI è di archiviare lo schema in un file di testo e specificare il file come valore di --analysis-scheme. In questo modo puoi formattare lo schema per facilitarne la lettura. Ad esempio, lo schema seguente definisce uno schema di analisi in inglese denominato myscheme che utilizza lo stemming algoritmico leggero e configura due stopword:

    { "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "AlgorithmicStemming": "light", "Stopwords": "[\"a\", \"the\"]" } }

    Se salvi questo schema in un file di testo denominato myscheme.txt, puoi considerare il file come il valore del parametro --analysis-scheme:

    aws cloudsearch define-analysis-scheme --region us-east-1 --domain-name movies --analysis-scheme file://myscheme.txt
Importante

Per utilizzare uno schema di analisi, devi applicarlo a uno o più campi text o text-array e creare nuovamente l'indice. Puoi configurare lo schema di analisi di un campo con il comando aws cloudsearch define-index-field. Per ricreare l'indice, chiama aws cloudsearch index-documents.

Configurazione degli schemi di analisi utilizzando gli SDK AWS

Gli SDK AWS (eccetto gli SDK per Android e iOS) supportano tutte le CloudSearch azioni Amazon definite nell'API di CloudSearch configurazione di Amazon, tra cui. DefineAnalysisScheme Per ulteriori informazioni sull'installazione e sull'uso degli SDK AWS, consulta Centro Sviluppatori AWS.

Importante

Per utilizzare uno schema di analisi, devi applicarlo a uno o più campi text o text-array e creare nuovamente l'indice. Puoi configurare lo schema di analisi di un campo con il metodo di definizione dei campi dell'indice. Per ricreare l'indice, utilizza il metodo di indicizzazione dei documenti.

Indicizzazione dei bigrammi per cinese, giapponese e coreano in Amazon CloudSearch

Poiché cinese, giapponese e coreano non dispongono di limiti delle parole espliciti, la semplice indicizzazione dei singoli caratteri (unigrammi) potrebbe comportare corrispondenze non pertinenti alla query di ricerca. Una soluzione è quella di indicizzare i bigrammi. Un bigramma è ogni sequenza di due caratteri adiacenti in una stringa. Ad esempio, l'esempio seguente mostra bigrammi della stringa 我的氣墊船裝滿了鱔魚 :

我的  的氣  氣墊  墊船  船裝  裝滿  滿了  了鱔  鱔魚

Anche se l'indicizzazione dei bigrammi può migliorare la qualità dei risultati di ricerca, tieni presente che può aumentare notevolmente le dimensioni dell'indice.

Per indicizzare i bigrammi per cinese, giapponese e coreano
  1. Creare uno schema di analisi del testo e impostare la lingua su multilingue (mul).

  2. Configurare il campo dell'indice che contiene i dati CJK per utilizzare lo schema di analisi multilingue.

Quando assegni uno schema di analisi che imposta la lingua di un campomul, Amazon genera CloudSearch automaticamente i bigrammi per tutto il testo in cinese, giapponese e coreano all'interno del campo.

Per ulteriori informazioni sulla creazione e l'utilizzo degli schemi di analisi, consultare Configurazione degli schemi di analisi.

Per indicizzare i contenuti in giapponese, potrebbe interessarti anche l'utilizzo di un dizionario di tokenizzazione personalizzato con il processore standard della lingua giapponese. Per ulteriori informazioni, consulta Personalizzazione della tokenizzazione del giapponese.

Personalizzazione della tokenizzazione giapponese in Amazon CloudSearch

Se hai bisogno di un maggiore controllo sul modo in cui Amazon CloudSearch tokenizza il giapponese, puoi aggiungere un dizionario di tokenizzazione giapponese personalizzato al tuo schema di analisi. La configurazione di un dizionario di tokenizzazione personalizzato ti consente di ignorare il modo in cui specifiche voci vengono tokenizzate dal processore standard della lingua giapponese. In questo modo, in alcuni casi, puoi migliorare la precisione dei risultati di ricerca, in particolare quando devi indicizzare e recuperare locuzioni specifiche del dominio.

Un dizionario di tokenizzazione è una raccolta di voci in cui ogni voce specifica un set di caratteri, come devono essere tokenizzati i caratteri, come deve essere pronunciato ogni token (letture) e un tag. part-of-speech Puoi specificare il dizionario come un array e ogni voce del dizionario è un array di stringhe. Le voci hanno la forma seguente:

["<text>","<token 1> ... <token n>","<reading 1> ... <reading n>","<part-of-speech tag>"]

È necessario specificare una lettura per ogni token e il tag per la voce. part-of-speech Per i tag part-of-speech trattati come stopword, consultare Tag Part-of-Speech per il giapponese.

Puoi utilizzare la chiave JapaneseTokenizationDictionary per definire un dizionario di tokenizzazione personalizzato in uno schema di analisi. Poiché passi il dizionario di tokenizzazione ad Amazon CloudSearch come stringa, devi evitare tutte le virgolette doppie all'interno della stringa. Ad esempio, il dizionario nello schema di analisi seguente specifica le sostituzioni della segmentazione per i composti delle scritture kanji e katakana e una lettura personalizzata per un nome proprio:

{ "AnalysisSchemeName": "jascheme", "AnalysisSchemeLanguage": "ja", "AnalysisOptions": { "Stopwords": "[\"a\", \"the\"]", "AlgorithmicStemming": "full", "JapaneseTokenizationDictionary": "[ [\"日本経済新聞\",\"日本 経済 新聞\",\"ニホン ケイザイ シンブン\",\"カスタム名詞\"],[\"トートバッグ\",\"トート バッグ\",\"トート バッグ\",\"かずカナ名詞\"],[\"朝青龍\",\"朝青龍\",\"アサショウリュウ\",\"カスタム人名\"] ]" } }

Durante la configurazione di uno schema di analisi con AWS CLI, puoi archiviare lo schema di analisi in un file di testo e specificare il file come valore di --analysis-scheme. In questo modo puoi formattare lo schema per facilitarne la lettura. Ad esempio, se archivi lo schema di analisi jascheme in un file denominato jascheme.txt, puoi passare il file quando chiami aws cloudsearch define-analysis-scheme:

aws cloudsearch define-analysis-scheme --region us-east-1 --domain-name mydomain --analysis-scheme file://jascheme.txt

Per ulteriori informazioni sulla creazione e l'utilizzo degli schemi di analisi, consultare Configurazione degli schemi di analisi.

Tag per le parti del discorso in giapponese su Amazon CloudSearch

Quando utilizzi un dizionario di tokenizzazione personalizzato per il giapponese, specifichi un part-of-speech tag per ogni voce. Se il part-of-speech tag corrisponde a uno dei tag configurati come tag di arresto, la voce viene considerata una stopword.

La tabella seguente mostra la parte dei tag vocali configurati come tag di interruzione in Amazon CloudSearch.

Tag stop
Tag Part-of-Speech Descrizione
助動詞 Auxiliary-verb Verbo che aggiunge significato funzionale o grammaticale alla proposizione in cui appare.
接続詞 Conjunction Congiunzioni che possono apparire in modo indipendente.
フィラー Filler Aizuchi che appare durante una conversazione o suoni inseriti come riempitivi.
非言語音 Non-verbal Suono non verbale.
その他-間投 Other-interjection Parole difficili da classificare come suffissi di sostantivo o particelle finali di frasi.
助詞-副詞化 Particle-adnominalizer "ni" e "to" che appaiono dopo sostantivi e avverbi.
助詞-連体化 Particle-adnominalizer "no" associato ai sostantivi che modifica le parole non flessive.
助詞-副助詞 Particle-adverbial Avverbio utilizzato per mostrare posizione, direzione del movimento e così via.
助詞-副助詞/並立助詞/終助詞 Particle-adverbial/conjunctive/final Particella "ka" quando non si sa se è avverbiale, congiuntiva o finale di frase.
助詞-格助詞-連語 P article-case-compound Composti di particelle e verbi che si comportano principalmente come particelle di caso.
助詞-格助詞-一般 P article-case-misc Particelle di caso.
助詞-格助詞-引用 P article-case-quote "to" che appare dopo sostantivi, discorso di una persona, virgolette, espressioni di decisioni da riunione, motivi, giudizi, congetture e così via.
助詞-格助詞 Particle-case Particelle di caso in cui la sottoclassificazione non è definita.
助詞-接続助詞 Particle-conjunctive Particelle congiuntive.
助詞-並立助詞 Particle-coordinate Particelle di coordinazione.
助詞-係助詞 Particle-dependency Particelle di dipendenza.
助詞-終助詞 Particle-final Particelle finali.
助詞-間投助詞 Particle-interjective Particelle con ruoli grammaticali di interiezione.
助詞-特殊 Particle-special Particella che non rientra in nessun'altra classificazione. Sono incluse le particelle utilizzate nelle forme liriche Tanka, Haiku e di altro tipo.
助詞 Particle Particelle non classificate.
記号-括弧閉 Symbol-close_bracket Parentesi chiusa: ].
記号-読点 Symbol-comma Virgola: ,.
記号-一般 Symbol-misc Simbolo generale che non rientra nelle altre categorie.
記号-括弧開 Symbol-open_bracket Parentesi aperta: [.
記号-句点 Symbol-period Periodi e punti.
記号-空白 Symbol-space Spazio vuoto a larghezza intera.
記号 Symbol Simboli non classificati.