Condividi tramite


Considerazioni linguistiche e Unicode varie

Questo argomento descrive le considerazioni di stemming per le lingue agglutinative e le coppie surrogate Unicode e per l'uso di coppie surrogate per estendere il set di caratteri Unicode per ospitare set di caratteri diversi. Questo argomento descrive anche come i word breaker identificano le frasi nel testo e gestiscono spazi non interrotti e come i word breaker e gli stemmer gestiscono numeri e date, parole composte, frasi composte, parole speciali e caratteri, acronimi e abbreviazioni e maiuscole.

Questo argomento è organizzato come segue:

Identificazione frasi

Le frasi sono una parola o un gruppo di parole modificate da uno o più altri. Le frasi sono difficili da identificare in modo coerente perché lo stesso modificatore può essere usato in più frasi con lo stesso sostantivo. Ad esempio, "nuova casa", "Camera del Parlamento", "nuova Camera del Parlamento".

Windows Search usa frasi più spesso in fase di query. Le frasi nel testo della query ricevono un peso maggiore rispetto alle singole parole. Nell'esempio precedente, un documento contenente "House of Parliament" è classificato più alto di quello contenente "House" e "Parliament" in punti diversi nel documento. È consigliabile che i word breaker generino una frase in fase di query se la frase corrisponde a almeno un documento.

Lingue agglutinative

Le lingue agglutinative formano parole tramite la combinazione di morfi più piccoli per esprimere idee composte. Ognuno di questi morfi in genere ha un significato o una funzione e mantiene la sua forma originale e il significato durante il processo di combinazione. Per le linguechee, ad esempio turco, finlandese, ungherese o coreano, è possibile produrre migliaia di forme per una determinata parola radice.

La tabella seguente mostra un elenco di forme inflected per la parola finlandese "talo" ("house").

Word Traduzione
Talo Casa
Taloni La mia casa
Talossa Nella casa
Talossani Nella mia casa
Taloja Case
Taloissa Nelle case

 

Le lingue inflected, ad esempio inglese, francese e latino, hanno un numero molto piccolo di possibili forme di parola per una parola radice. Nelle lingue inflected, i morphemes influiscono l'uno all'altro quando si associa. La maggior parte delle modifiche apportate all'inflezione è presente nella fine della parola o del gambo. A differenza delle lingue agglutinative, le lingue inflected tendono ad avere funzioni diverse per un singolo morfieme. Ad esempio, un morpheme può determinare sia il numero che il caso.

Gli stemmer per le lingue agglutinative devono pesare il compromesso tra prestazioni e accuratezza per generare solo un subset del numero di forme di parole possibili.

Numeri, orari e date

Word i breaker devono usare un formato comune per rappresentare numeri, orari e date per facilitare l'esecuzione di query coerenti.

Quando si crea un word breaker, si consiglia di normalizzare i numeri di word breaker in una rappresentazione canonica usando il modello "NNddDcc", dove NN è la sequenza letterale "NN", dd è la parte intero del numero, D è il valore letterale "D" e cc è la parte frazionaria del numero. Word i breaker non limitano il numero di cifre per l'intero o la parte frazionaria del numero. È consigliabile che i word breaker riconoscano i modelli numerici delimitati da entrambi i punti (.) e le virgole (,). Ad esempio, Windows Search rappresenta sia "1.000.2" che "1.000.2" come "NN1000D2".

Scegliere un formato per word breaker e stemmer. I numeri arabi a byte singolo sono normalizzati in modo che una query contenente una di queste forme corrisponda ai documenti con le altre forme.

Quando si crea un word breaker, è consigliabile che il word breaker presenti tutte le volte come rappresentazione di 24 ore usando il modello "TThhmmss", dove TT è il prefisso letterale "TT", hh è l'ora, mm è i minuti e ss è il secondo. Windows Search non corrisponde a unità aggiuntive di tempo, ad esempio millisecondi. L'analisi dei modelli A.M e P.M. è facoltativa.

Quando si crea un word breaker, è consigliabile che il word breaker generi date nel formato canonico "DDammdd", dove DD è il valore letterale "DD ", y è l'anno, mm è i mesi e dd è il giorno. È anche consigliabile che i word breaker archiviano anni a due cifre in formati sia del xx secolo che del ventesimo secolo. Ad esempio, i word breaker rappresentano "2.2.99" come "DD19990202" e "DD20990202". In fase di query, Windows Search deriva la data usando le interfacce di programmazione dell'applicazione Windows (API) per determinare la data di incrocio per il server per visualizzare il formato corretto, 19XX o 20XX.

Parole composte

In alcune lingue, ad esempio tedesco, i sostantivi sono composti da sostantivi più semplici. Questi sostantivi composti sono troppo specifici per il richiamo ragionevole delle query. Ad esempio, senza scomposizione, una query per "Versicherung" ("assicurazione") non corrisponde a "Lebensversicherungs incorporates incorporate" ("salesman dell'assicurazione vita"). In casi come questo, è consigliabile che i word breaker interrompano queste parole composte in componenti di base durante la creazione dell'indice e il tempo di query. Il word breaker tedesco interrompe "Lebensversicherungs reimpostazioni" nelle parole componente "Leben", "Versicherung" e "Deutsche". Si applica la stessa scomposizione in fase di query, insieme allo stemming facoltativo per ognuno dei termini risultanti.

Frasi composte

Alcune lingue, ad esempio coreano, contengono frasi complesse che possono essere interrotte in diversi modi. Una frase coreana è costituita da parole di contenuto, ad esempio sostantivi, pronomi, verbi e aggettivi, seguiti da parole funzionali. Le parole funzionali sono disponibili in post-posizioni e terminazioni. Le posizioni successive indicano il ruolo funzionale del sostantivo o del pronono in una frase; le terminazioni indicano il ruolo funzionale del verbo o dell'aggettivo.

Una frase può avere le diverse analisi e ogni analisi può essere costituita da diverse parole di contenuto. Il word breaker deve usare l'euristica specifica del linguaggio per determinare, dal contesto, il peso da dare a analisi diverse. Il word breaker può determinare quale scomposizione usare in base al numero di parole del componente risultanti. Alcuni word breaker possono favorire brevi sequenze di termini più lunghi, mentre altri word breaker possono favorire sequenze lunghe di parole più piccole.

Un'altra considerazione è che in coreano, sostantivi e pronomi possono essere archiviati nell'indice senza le loro parole funzionali corrispondenti. Coreano è una lingua agglutinative e combina numerose terminazioni di parola con verbi e aggettivi per formare innumerevoli forme inflezioni. I verbi e gli aggettivi identificati nelle frasi vengono salvati con le relative terminazioni nell'indice, ma il word breaker non genera nuovi moduli.

Caratteri e parole speciali

I caratteri speciali sono caratteri come "," "©", e "™". Questi caratteri vengono usati raramente nelle query. Word i breaker devono strisciare caratteri speciali durante la creazione dell'indice e in fase di query.

È consigliabile che i word breaker riconoscano parole speciali, ad esempio "C++", "C#", "NET", e notazione musicale. Word i breaker possono usare un'euristica della lingua per identificare un modello per parole speciali. Word i breaker possono anche usare un dizionario personalizzato che contiene parole speciali riconosciute.

Acronimi e abbreviazioni

Gli acronimi e le abbreviazioni devono essere considerati quando si implementa un word breaker. In molte lingue, le singole lettere di acronimi sono separate da punti. Occasionalmente, le parole che non sono acronimi o abbreviazioni riconosciute sono abbreviate. Ad esempio, "Stati Uniti d'America" può essere abbreviato come "USA" o "U.S.A". Word breaker inclusi in Windows Search in genere identificano parole a lettera singola come parole di rumore e considerano tali parole come segnaposto durante il tempo di query. Durante il tempo di query, un word breaker che non è a conoscenza degli acronimi comuni o che non riconosce le abbreviazioni, converte l'abbreviazione "U.S.A." in "U", "S" e "A". Questa scomposizione non fornisce informazioni sufficienti per corrispondere alle parole nell'indice full-text perché tutti i termini della query sono parole di rumore. Quando si crea un word breaker, è consigliabile rimuovere i punti che separano le lettere degli acronimi. Nell'esempio "U.S.A." viene archiviato come "USA" e un termine di query che contiene "U.S.A". in realtà query per "USA". Se un word breaker elabora un'abbreviazione, il periodo in tale abbreviazione non viene considerato come interruzione EOS. A causa di questo, un word breaker potrebbe non identificare correttamente un'interruzione EOS se l'abbreviazione è alla fine della frase.

Uso delle maiuscole

Windows Search non mantiene attualmente la maiuscola quando salva le parole nell'indice full-text. Word breaker e stemmer non devono modificare la distinzione tra maiuscole e minuscole per le parole.

Spazi non di interruzione

Quando si crea un word breaker, è consigliabile assicurarsi che il word breaker consideri gli spazi non di interruzione come separatori di parole. È inoltre consigliabile che il word breaker generi forme alternative della parola, con e senza spazi di interruzione. Alcuni caratteri, ad esempio i caratteri di sottolineatura, sono caratteri speciali trattati come caratteri non di interruzione a causa delle origini del testo in cui vengono trovati. Ad esempio, il codice sorgente o i nomi di file possono includere caratteri di sottolineatura come caratteri non di interruzione.

Coppie di surrogati

Le coppie di surrogati sono rappresentazioni di caratteri nel codice sorgente che rappresentano un singolo carattere costituito da una sequenza di due valori Unicode. In una coppia codificata, il primo valore è un surrogato elevato e il secondo è un surrogato basso. Un surrogato elevato è un carattere nell'intervallo da U+D800 a U+DBFF. Un surrogato basso è un carattere compreso nell'intervallo da U+DC00 a U+DFFF. Le coppie surrogate estendono il set di caratteri oltre il carattere Unicode. È consigliabile che un word breaker usi le regole seguenti per la gestione delle coppie di surrogati:

  • Un surrogato alto deve precedere un surrogato basso.
  • Un surrogato basso deve seguire un surrogato elevato.
  • Un surrogato alto o basso senza un valore corrispondente per l'altra metà non ha alcun significato.

Word i breaker devono considerare eventuali coppie e generare le coppie, ad esempio nell'indice. Per altre informazioni, vedere Surrogati e caratteri supplementari.