1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cevinc-zhparser

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 21:23 c235be4

Zhparser

Zhparser — это расширение PostgreSQL для полнотекстового поиска на китайском языке (мандаринский диалект китайского языка). Оно реализует анализатор китайского языка на основе Simple Chinese Word Segmentation (SCWS).

Домашняя страница проекта: http://blog.amutu.com/zhparser/.

Установка 0. Предварительные условия

  • Zhparser поддерживает PostgreSQL 9.2 и более поздние версии, убедитесь, что ваша версия PG соответствует требованиям.
  • Для систем REDHAT/CentOS Linux убедитесь, что установлены соответствующие библиотеки и заголовочные файлы, обычно они находятся в пакете postgresql-devel.
  1. Установка SCWS
wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar xf -
cd scws-1.2.3 ; ./configure ; make install

Примечание: при запуске configure на FreeBSD release 10 и более поздних версиях необходимо добавить опцию --with-pic.

Если вы скачали исходный код scws с GitHub, вам нужно сначала запустить следующие команды для создания файла configure:

touch README;aclocal;autoconf;autoheader;libtoolize;automake --add-missing
  1. Скачивание исходного кода zhparser
git clone https://github.com/amutu/zhparser.git
  1. Компиляция и установка zhparser
make && make install

Если у вас установлено несколько версий PostgreSQL, вы можете скомпилировать расширение для конкретной версии, указав PG_CONFIG:

PG_CONFIG=/usr/lib/postgresql/9.5/bin/pg_config make && make install

Примечание: При компиляции и установке на *BSD используйте gmake вместо make.

  1. Создание расширения
psql dbname superuser -c 'CREATE EXTENSION zhparser'

Конфигурация Следующие настройки используются в PG 9.2 и выше. Они предназначены для управления поведением словаря и сегментации слов, но не являются обязательными, по умолчанию все они имеют значение false (если эти параметры не заданы в файле конфигурации, поведение zhparser будет соответствовать значениям false).

Игнорирование всех знаков препинания и специальных символов: zhparser.punctuation_ignore = f

Автоматическое объединение свободных слов с использованием двухсимвольного метода: zhparser.seg_with_duality = f

Загрузка всего словаря в память: zhparser.dict_in_memory = f

Слияние коротких слов: zhparser.multi_short = f

Слияние двойных слов: zhparser.multi_duality = f

Важное слияние одиночных слов: zhparser.multi_zmain = f

Полное слияние одиночных слов: zhparser.multi_zall = f

Помимо встроенного словаря zhparser, пользователи могут добавлять собственные словари. Пользовательские словари имеют более высокий приоритет, чем встроенные. Файлы пользовательских словарей должны быть помещены в каталог share/postgresql/tsearch_data. Zhparser определяет тип словаря на основе расширения файла, .txt означает текстовый формат, а .xdb — формат xdb. Несколько файлов разделяются запятыми, порядок приоритета словарей от низкого к высокому, например:

zhparser.extra_dicts = 'dict_extra.txt,mydict.xdb'

Примечание. Параметры zhparser.extra_dicts и zhparser.dict_in_memory должны быть установлены до запуска backend (можно изменить их в конфигурационном файле и затем перезагрузить, после чего новые соединения будут использовать изменения). Другие параметры можно настроить в сеансе. Параметры zhparser соответствуют параметрам SCWS, и их значения можно найти в документации SCWS: http://www.xunsearch.com/scws/docs.php#libscws.

Пример

-- create the extension
CREATE EXTENSION zhparser;

-- make test configuration using parser
CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);

-- add token mapping
ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;

-- ts_parse
SELECT * FROM ts_parse('zhparser', 'hello world! 2010年保障房建设在全国范围内获全面启动,从中央到地方纷纷加大 了保障房的建设和投入力度 。2011年,保障房进入了更大规模的建设阶段。住房城乡建设部党组书记、部长姜伟新去年底在全国住房城乡建设工作会议上表示,要继续推进保障性安居工程建设。');

-- test to_tsvector
SELECT to_tsvector('testzhcfg','“今年保障房新开工数量虽然有所下调,但实际的年度在建规模以及竣工规模会超以往年份,相对应的对资金的需求也会创历>史纪录。”陈国强说。在他看来,与2011年相比,2012年的保障房建设在资金配套上的压力将更为严峻。');

-- test to_tsquery
SELECT to_tsquery('testzhcfg', '保障房资金压力');

Пользовательский словарь Подробное описание формата TXT словаря (словарь в формате TXT в настоящее время совместим с cli/scws_gen_dict)

  1. Каждая строка представляет собой запись, строки, начинающиеся с # или ;, считаются комментариями и игнорируются.

  2. Каждая строка состоит из четырёх полей, представляющих «слово» (китайское слово или слово из трёх букв), «TF», «IDF» и «часть речи», разделённых пробелами или символами табуляции, количество не ограничено, можно выровнять для улучшения внешнего вида.

  3. За исключением «слова», остальные поля можно опустить. Если они опущены, TF и IDF по умолчанию равны 1.0, а часть речи — @.

  4. Поскольку словарь TXT динамически загружается (внутренний мониторинг изменений файла автоматически преобразуется в xdb и сохраняется во временном каталоге системы), рекомендуется не делать словарь TXT слишком большим.

  5. Чтобы удалить слово, установите часть речи равной «!», что означает, что слово недействительно, даже если оно существует в других основных словарях.

Примечание: 1. Пользовательский словарь может быть текстовым файлом в формате TXT или двоичным файлом в формате XDB. Формат XDB более эффективен и подходит для больших словарей. Вы можете использовать инструмент scws для преобразования текстового словаря в формат XDB; 2. zhparser использует упрощённый китайский язык в качестве словаря по умолчанию. Если вам нужен традиционный китайский, вы можете загрузить готовый словарь XDB с этого сайта; 3. Пример пользовательского словаря можно посмотреть в dict_extra.txt. Дополнительную информацию см. в документации SCWS.

Создание пользовательского словаря 2.1 Повышение гибкости пользовательского словаря и совместимость с функциями версии 1.0

Для создания пользовательского словаря требуются права суперпользователя. Пользовательский словарь является уровнем базы данных (не экземпляром), каждая база данных имеет свой собственный пользовательский словарь, который хранится в каталоге data под базой данных ID (в версии 2.0 он хранится в share/tsearch_data).

Чтобы обновить версию среды (новая среда может быть установлена напрямую): alter extension zhparser update ;

test=# SELECT * FROM ts_parse('zhparser', '保障房资金压力');
 tokid | token
-------+-------
   118 | 保障
   110 | 房
   110 | 资金
   110 | 压力

test=# insert into zhparser.zhprs_custom_word values('资金压力');
--删除词insert into zhprs_custom_word(word, attr) values('word', '!');
--\d zhprs_custom_word 查看其表结构,支持TD, IDF
test=# select sync_zhprs_custom_word();
 sync_zhprs_custom_word
------------------------

(1 row)

test=# \q --sync 后重新建立连接
[lzzhang@lzzhang-pc bin]$

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/cevinc-zhparser.git
git@api.gitlife.ru:oschina-mirror/cevinc-zhparser.git
oschina-mirror
cevinc-zhparser
cevinc-zhparser
master