zhparser Руководство
zhparser
- это сторонний модуль для PostgreSQL, специально разработанный для работы с китайскими текстами. Он предоставляет эффективные функции токенизации и поиска, подходящие для различных сценариев обработки китайских текстов. ServBay поставляется с scws
(Simple Chinese Word Segmentation), и zhparser
может использовать scws
для создания пользовательских словарей. В этой статье подробно рассказывается, как установить и использовать zhparser
в ServBay.
Установка zhparser
ServBay уже включает расширение zhparser
, вам нужно только активировать его в базе данных. Вот шаги по активации zhparser
:
Подключение к базе данных PostgreSQL:
bashpsql -U ваше_имя_пользователя -d ваша_база_данных
1Создание расширения:
sqlCREATE EXTENSION zhparser;
1Проверка установки:
sql\dx
1
Настройка zhparser
После активации zhparser
нужно выполнить некоторые настройки, чтобы он мог правильно выполнять токенизацию и полнотекстовый поиск по китайским текстам.
Настройка конфигурации текстового поиска
Создание конфигурации текстового поиска:
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
, с помощью которого вы можете создавать собственные словари. Настраивая пользовательские словари и режимы токенизации, вы можете дополнительно оптимизировать процесс токенизации для удовлетворения конкретных потребностей приложений.