zhparser 使用指南
zhparser
是一個用於 PostgreSQL 的第三方擴展模組,專門為處理中文文本而設計。它提供了高效的分詞和搜索功能,適用於各種中文文本處理場景。ServBay 自帶了 scws
(簡單中文分詞),zhparser
可以使用 scws
來創建自定義詞庫。本文將詳細介紹如何在 ServBay 中安裝和使用 zhparser
。
安裝 zhparser
ServBay 已經附帶了 zhparser
擴展模組,您只需要在數據庫中啟用它即可。以下是啟用 zhparser
的步驟:
連接到 PostgreSQL 數據庫:
bashpsql -U your_username -d your_database
1創建擴展:
sqlCREATE EXTENSION zhparser;
1驗證安裝:
sql\dx
1
配置 zhparser
在啟用 zhparser
後,您需要進行一些配置,以便它能夠正確地進行中文分詞和全文搜索。
配置文本搜索配置(Text Search Configuration)
創建文本搜索配置:
sqlCREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser);
1添加詞典:
sqlALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR n,v,a,i,e,l WITH simple;
1
使用 zhparser 進行全文搜索
以下是一個示例,展示如何使用 zhparser
進行全文搜索。
創建示例表和數據
創建表:
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT );
1
2
3
4插入示例數據:
sqlINSERT INTO documents (content) VALUES ('我愛自然語言處理'), ('中文分詞是文本處理的重要步驟'), ('zhparser 是一個很好的中文分詞工具');
1
2
3
4
創建全文搜索索引
- 創建 GIN 索引:sql
CREATE INDEX idx_gin_content ON documents USING gin (to_tsvector('chinese', content));
1
執行全文搜索
執行搜索查詢:
sqlSELECT * FROM documents WHERE to_tsvector('chinese', content) @@ to_tsquery('chinese', '中文 & 分詞');
1
2該查詢將返回包含“中文”和“分詞”這兩個詞的文檔。
自定義詞典
ServBay 自帶了 scws
,您可以使用 scws
來創建自定義詞庫,以便更好地滿足特定應用需求。
添加自定義詞彙
創建自定義詞典文件:
plaintext/Applications/ServBay/etc/scws/custom_dict.txt
1在文件中添加詞彙,每行一個詞彙:
plaintext自然語言處理 中文分詞
1
2配置
zhparser
使用自定義詞典:sqlSET zhparser.dict_path = '/Applications/ServBay/etc/scws/custom_dict.txt';
1
重新加載詞典
- 重新加載詞典:sql
SELECT zhprs_reload_dict();
1
調整分詞模式
zhparser
支持多種分詞模式,您可以根據需要進行調整。
設置分詞模式
設置分詞模式為最細粒度分詞:
sqlSET zhparser.seg_with_duality = true;
1設置分詞模式為最大粒度分詞:
sqlSET zhparser.seg_with_duality = false;
1
總結
zhparser
是一個強大的中文分詞工具,通過簡單的配置和使用,您可以在 PostgreSQL 中實現高效的中文全文搜索。ServBay 已經附帶了 zhparser
擴展模組,並且自帶了 scws
,您可以使用 scws
來創建自定義詞庫。通過自定義詞典和調整分詞模式,您還可以進一步優化分詞效果,以滿足特定的應用需求。