Guide d'utilisation de zhparser
zhparser
est un module d'extension tiers pour PostgreSQL, spécialement conçu pour traiter le texte chinois. Il offre des fonctionnalités de segmentation et de recherche efficaces, adaptées à divers scénarios de traitement de texte chinois. ServBay inclut scws
(Simple Chinese Word Segmentation), et zhparser
peut utiliser scws
pour créer des dictionnaires personnalisés. Cet article présente en détail comment installer et utiliser zhparser
dans ServBay.
Installation de zhparser
ServBay inclut déjà le module d'extension zhparser
, vous devez simplement l'activer dans la base de données. Voici les étapes pour activer zhparser
:
Connexion à la base de données PostgreSQL :
bashpsql -U your_username -d your_database
1Création de l'extension :
sqlCREATE EXTENSION zhparser;
1Vérification de l'installation :
sql\dx
1
Configuration de zhparser
Après l'activation de zhparser
, vous devez effectuer quelques configurations afin qu'il puisse correctement segmenter le texte chinois et effectuer des recherches en texte intégral.
Configuration de la recherche en texte intégral (Text Search Configuration)
Création d'une configuration de recherche en texte intégral :
sqlCREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser);
1Ajout de dictionnaires :
sqlALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR n,v,a,i,e,l WITH simple;
1
Utilisation de zhparser pour la recherche en texte intégral
Voici un exemple montrant comment utiliser zhparser
pour effectuer une recherche en texte intégral.
Création d'une table et de données d'exemple
Création d'une table :
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT );
1
2
3
4Insertion de données d'exemple :
sqlINSERT INTO documents (content) VALUES ('我爱自然语言处理'), ('中文分词是文本处理的重要步骤'), ('zhparser是一个很好的中文分词工具');
1
2
3
4
Création d'un index de recherche en texte intégral
- Création d'un index GIN :sql
CREATE INDEX idx_gin_content ON documents USING gin (to_tsvector('chinese', content));
1
Exécution de la recherche en texte intégral
Exécution de la requête de recherche :
sqlSELECT * FROM documents WHERE to_tsvector('chinese', content) @@ to_tsquery('chinese', '中文 & 分词');
1
2Cette requête renverra les documents contenant les mots "中文" et "分词".
Dictionnaires personnalisés
ServBay inclut scws
, et vous pouvez utiliser scws
pour créer des dictionnaires personnalisés afin de mieux répondre aux besoins des applications spécifiques.
Ajout de vocabulaire personnalisé
Création d'un fichier de dictionnaire personnalisé :
plaintext/Applications/ServBay/etc/scws/custom_dict.txt
1Ajout de vocabulaire au fichier, un mot par ligne :
plaintext自然语言处理 中文分词
1
2Configuration de
zhparser
pour utiliser le dictionnaire personnalisé :sqlSET zhparser.dict_path = '/Applications/ServBay/etc/scws/custom_dict.txt';
1
Rechargement du dictionnaire
- Rechargement du dictionnaire :sql
SELECT zhprs_reload_dict();
1
Ajustement du mode de segmentation
zhparser
supporte plusieurs modes de segmentation, que vous pouvez ajuster selon vos besoins.
Configuration du mode de segmentation
Configuration du mode de segmentation pour la segmentation la plus fine :
sqlSET zhparser.seg_with_duality = true;
1Configuration du mode de segmentation pour la segmentation la plus large :
sqlSET zhparser.seg_with_duality = false;
1
Résumé
zhparser
est un outil puissant de segmentation du texte chinois. Avec une configuration simple, vous pouvez effectuer des recherches en texte intégral efficaces dans PostgreSQL. ServBay inclut déjà le module d'extension zhparser
ainsi que scws
, que vous pouvez utiliser pour créer des dictionnaires personnalisés. En personnalisant les dictionnaires et en ajustant les modes de segmentation, vous pouvez encore améliorer les résultats de la segmentation pour répondre aux exigences spécifiques de votre application.