Guida all'uso di zhparser
zhparser
è un modulo di estensione di terze parti per PostgreSQL, progettato specificamente per la gestione di testi in cinese. Fornisce funzioni efficienti di segmentazione e ricerca, adatte a vari scenari di elaborazione di testi cinesi. ServBay include scws
(Simple Chinese Word Segmentation), che zhparser
può utilizzare per creare dizionari personalizzati. Questo documento introduce come installare e utilizzare zhparser
in ServBay.
Installazione di zhparser
ServBay include già il modulo di estensione zhparser
, è sufficiente abilitarlo nel database. Di seguito sono riportati i passaggi per abilitare zhparser
:
Connettersi al database PostgreSQL:
bashpsql -U your_username -d your_database
1Creare l'estensione:
sqlCREATE EXTENSION zhparser;
1Verificare l'installazione:
sql\dx
1
Configurazione di zhparser
Dopo aver abilitato zhparser
, è necessario configurarlo affinché possa eseguire correttamente la segmentazione e la ricerca testuale in cinese.
Configurazione della ricerca testuale
Creare la configurazione per la ricerca testuale:
sqlCREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser);
1Aggiungere il dizionario:
sqlALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR n,v,a,i,e,l WITH simple;
1
Uso di zhparser per la ricerca testuale
Ecco un esempio che mostra come utilizzare zhparser
per la ricerca testuale.
Creazione della tabella e dei dati di esempio
Creare una tabella:
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT );
1
2
3
4Inserire dati di esempio:
sqlINSERT INTO documents (content) VALUES ('Amo il trattamento del linguaggio naturale'), ('La segmentazione cinese è un passaggio importante nell'elaborazione dei testi'), ('zhparser è un ottimo strumento di segmentazione cinese');
1
2
3
4
Creazione dell'indice per la ricerca testuale
- Creare un indice GIN:sql
CREATE INDEX idx_gin_content ON documents USING gin (to_tsvector('chinese', content));
1
Esecuzione di una query di ricerca testuale
Eseguire una query di ricerca:
sqlSELECT * FROM documents WHERE to_tsvector('chinese', content) @@ to_tsquery('chinese', 'segmentazione & cinese');
1
2Questa query restituirà i documenti contenenti entrambe le parole "segmentazione" e "cinese".
Dizionario personalizzato
ServBay include scws
, che può essere utilizzato per creare dizionari personalizzati per meglio soddisfare esigenze applicative specifiche.
Aggiunta di vocaboli personalizzati
Creare un file di dizionario personalizzato:
plaintext/Applications/ServBay/etc/scws/custom_dict.txt
1Aggiungere vocaboli al file, uno per riga:
plaintextTrattamento del linguaggio naturale Segmentazione cinese
1
2Configurare
zhparser
per utilizzare il dizionario personalizzato:sqlSET zhparser.dict_path = '/Applications/ServBay/etc/scws/custom_dict.txt';
1
Ricarica del dizionario
- Ricaricare il dizionario:sql
SELECT zhprs_reload_dict();
1
Modifica della modalità di segmentazione
zhparser
supporta diverse modalità di segmentazione, che possono essere regolate in base alle esigenze.
Impostazione della modalità di segmentazione
Impostare la modalità di segmentazione al livello di granularità più fine:
sqlSET zhparser.seg_with_duality = true;
1Impostare la modalità di segmentazione al livello di granularità massima:
sqlSET zhparser.seg_with_duality = false;
1
Conclusione
zhparser
è uno strumento potente per la segmentazione del cinese, che consente di implementare una ricerca testuale efficiente in PostgreSQL con semplici configurazioni e utilizzo. ServBay include già il modulo di estensione zhparser
insieme a scws
, che può essere utilizzato per creare dizionari personalizzati. Modificando il dizionario e la modalità di segmentazione, è possibile ottimizzare ulteriormente la segmentazione per soddisfare specifiche esigenze applicative.