Leitfaden zur Verwendung von zhparser
zhparser
ist ein Drittanbieter-Erweiterungsmodul für PostgreSQL, das speziell für die Verarbeitung von chinesischem Text entwickelt wurde. Es bietet effiziente Tokenisierungs- und Suchfunktionen, die für verschiedene Szenarien der chinesischen Textverarbeitung geeignet sind. ServBay enthält scws
(Simple Chinese Word Segmentation), und zhparser
kann scws
verwenden, um benutzerdefinierte Wörterbücher zu erstellen. Dieser Artikel erklärt im Detail, wie man zhparser
in ServBay installiert und verwendet.
Installation von zhparser
ServBay enthält bereits das zhparser
-Erweiterungsmodul. Sie müssen es nur in der Datenbank aktivieren. Hier sind die Schritte zur Aktivierung von zhparser
:
Mit der PostgreSQL-Datenbank verbinden:
bashpsql -U your_username -d your_database
1Erweiterung erstellen:
sqlCREATE EXTENSION zhparser;
1Installation überprüfen:
sql\dx
1
Konfiguration von zhparser
Nach der Aktivierung von zhparser
müssen Sie einige Konfigurationen durchführen, damit es die chinesische Tokenisierung und Volltextsuche korrekt ausführen kann.
Konfiguration der Textsuchfunktion (Text Search Configuration)
Textsuchkonfiguration erstellen:
sqlCREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser);
1Wörterbücher hinzufügen:
sqlALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR n,v,a,i,e,l WITH simple;
1
Verwendung von zhparser zur Volltextsuche
Hier ist ein Beispiel, das zeigt, wie man zhparser
zur Volltextsuche verwendet.
Beispieltabellen und -daten erstellen
Tabelle erstellen:
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT );
1
2
3
4Beispieldaten einfügen:
sqlINSERT INTO documents (content) VALUES ('我爱自然语言处理'), ('中文分词是文本处理的重要步骤'), ('zhparser是一个很好的中文分词工具');
1
2
3
4
Volltextindex erstellen
- GIN-Index erstellen:sql
CREATE INDEX idx_gin_content ON documents USING gin (to_tsvector('chinese', content));
1
Volltextsuche ausführen
Suchabfrage ausführen:
sqlSELECT * FROM documents WHERE to_tsvector('chinese', content) @@ to_tsquery('chinese', '中文 & 分词');
1
2Diese Abfrage gibt Dokumente zurück, die die Wörter „中文“ und „分词“ enthalten.
Benutzerdefiniertes Wörterbuch
ServBay enthält scws
, mit dem Sie benutzerdefinierte Wörterbücher erstellen können, um spezifische Anwendungsanforderungen besser zu erfüllen.
Hinzufügen von benutzerdefinierten Wörtern
Benutzerdefinierte Wörterbuchdatei erstellen:
plaintext/Applications/ServBay/etc/scws/custom_dict.txt
1Wörter zum Wörterbuch hinzufügen, ein Wort pro Zeile:
plaintext自然语言处理 中文分词
1
2Konfigurieren Sie
zhparser
zur Verwendung des benutzerdefinierten Wörterbuchs:sqlSET zhparser.dict_path = '/Applications/ServBay/etc/scws/custom_dict.txt';
1
Wörterbuch neu laden
- Wörterbuch neu laden:sql
SELECT zhprs_reload_dict();
1
Anpassung des Tokenisierungsmodus
zhparser
unterstützt verschiedene Tokenisierungsmodi, die Sie nach Bedarf anpassen können.
Tokenisierungsmodus einstellen
Tokenisierungsmodus auf feinste Granularität einstellen:
sqlSET zhparser.seg_with_duality = true;
1Tokenisierungsmodus auf maximale Granularität einstellen:
sqlSET zhparser.seg_with_duality = false;
1
Zusammenfassung
zhparser
ist ein leistungsstarkes chinesisches Tokenisierungstool, mit dem Sie durch einfache Konfiguration und Verwendung eine effiziente chinesische Volltextsuche in PostgreSQL umsetzen können. ServBay enthält bereits das zhparser
-Erweiterungsmodul und scws
. Sie können scws
verwenden, um benutzerdefinierte Wörterbücher zu erstellen. Durch benutzerdefinierte Wörterbücher und Anpassung des Tokenisierungsmodus können Sie die Tokenisierung noch weiter optimieren, um spezifische Anwendungsanforderungen zu erfüllen.