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

OSCHINA-MIRROR/mirrors-pkuseg

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PKUSeg: инструмент для многообластного китайского токенизатора

PKUSeg — это набор инструментов, основанный на статье Luo et. al 2019 года. Он отличается простотой использования и поддерживает детальное разделение по областям, что значительно повышает точность токенизации.

Содержание:

  • Основные особенности;
  • Компиляция и установка;
  • Сравнение производительности различных инструментов токенизации;
  • Использование;
  • Библиография;
  • Автор;
  • Часто задаваемые вопросы и ответы на них.

Основные особенности:

  1. Многообластное разделение на токены. В отличие от традиционных универсальных инструментов токенизации китайского языка, этот пакет направлен на предоставление индивидуализированных предварительно обученных моделей для данных из разных областей. В настоящее время поддерживаются модели предварительной подготовки для новостей, интернета, медицины, туризма и смешанных областей. Если пользователь точно знает область текста, который нужно токенизировать, он может загрузить соответствующую модель. Если область неизвестна, рекомендуется использовать универсальную модель для смешанной области. Примеры токенизации для каждой области можно найти в файле example.txt.
  2. Более высокая точность токенизации по сравнению с другими инструментами. При использовании одинаковых обучающих и тестовых данных PKUSeg обеспечивает более высокую точность токенизации.
  3. Поддержка обучения пользовательских моделей. Пользователи могут обучать новые модели, используя собственные размеченные данные.
  4. Поддержка маркировки частей речи.

Компиляция и установка: — В настоящее время поддерживается только Python 3. — Для достижения наилучших результатов и скорости рекомендуется обновлять до последней версии через pip install.

  1. Установка через PyPI (с предустановленными моделями):

    pip3 install pkuseg
    После этого можно импортировать pkuseg.

    Рекомендуется обновить до последней версии для лучшего опыта:

    pip3 install -U pkuseg
  2. Если скорость загрузки с официального источника PyPI не устраивает, можно использовать зеркальный источник, например: Для первой установки:

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pkuseg

    Обновление:

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -U pkuseg
  3. Если вы не хотите устанавливать через pip, вы можете скачать пакет с GitHub и запустить следующую команду для установки:

    python setup.py build_ext -i

    Код на GitHub не включает предварительно обученные модели. Вам необходимо загрузить или обучить их самостоятельно. Предварительно обученные модели доступны в разделе release. При использовании необходимо установить «model_name» в файл модели.

Обратите внимание: методы установки 1 и 2 поддерживают только Linux (Ubuntu), Mac и Windows 64-битные версии Python 3. Для других систем рекомендуется выполнить локальную компиляцию и установку.

Сравнение производительности различных инструментов токенизации: Мы сравнили PKUSeg с популярными китайскими инструментами токенизации, такими как Jieba и THULAC, на основе статьи Luo et. al. Подробные настройки можно найти в разделе «Экспериментальная среда».

Результаты сравнения для конкретных областей:

MSRA Точность Воспоминание F-оценка
Jieba 87,01 89,88 88,42
THULAC 95,60 95,91 95,71
PKUSeg 96,94 96,81 96,88
WEIBO Точность Воспоминание F-оценка
Jieba 87,79 87,54 87,66
THULAC 93,40 92,40 92,87
PKUSeg 93,78 94,65 94,21

Сравнение эффективности по умолчанию для разных областей: Учитывая, что большинство пользователей пробуют инструменты токенизации без предварительного знания о них, мы также сравнили эффективность моделей по умолчанию в разных областях. Однако такое сравнение не всегда справедливо.

По умолчанию MSRA CTB8 PKU WEIBO Среднее значение для всех
Jieba 81,45 79,58 81,83 83,56 81,61
THULAC 85,55 87,84 92,29 86,65 88,08
PKUSeg 87,29 91,77 92,68 93,43 91,29

Здесь «Среднее значение для всех» показывает среднее значение F-оценки для всех тестовых наборов.

Дополнительные сравнения можно найти в разделе «Сравнение с существующими инструментами».

Использование:

Примеры кода: Следующие примеры кода подходят для интерактивной среды Python.

Пример кода 1: использование конфигурации по умолчанию для токенизации (рекомендуется использовать модель по умолчанию, если область токенизируемого текста неизвестна):

import pkuseg

seg = pkuseg.pkuseg() # Загрузить модель с конфигурацией по умолчанию
text = seg.cut('我爱北京天安门') # Токенизация
print(text)

Пример кода 2: детальная токенизация по областям (рекомендуется использовать модели для конкретных областей, если они известны):

import pkuseg

seg = pkuseg.pkuseg(model_name='medicine') # Загрузить модель для медицинской области
text = seg.cut('我爱北京天安门') # Токенизация
print(text)

Пример кода 3: токенизация с маркировкой частей речи, подробные метки можно найти в tags.txt:

import pkuseg

seg = pkuseg.pkuseg(postag=True) # Включить маркировку частей речи
text = seg.cut('我爱北京天安门') # Токенизация и маркировка частей речи
print(text)

Другие примеры использования можно найти в разделе «Подробные примеры кода».

Параметры: Модельная конфигурация:

pkuseg.pkuseg(model_name = "default", user_dict = "default", postag = False)
model_name: путь к модели.
"default": модель по умолчанию (только для пользователей, загружающих через pip).
"news": модель для новостей.
"web": модель для интернета.
"medicine": модель для медицины.
"tourism": модель для туризма.
model_path: загрузка модели из указанного пути.
user_dict: настройка пользовательского словаря.
"default": словарь по умолчанию.
None: без использования словаря.
dict_path: дополнительный пользовательский словарь (если выбран анализ частей речи и известна часть речи слова, она должна быть указана после слова через tab).
postag: выполнять ли анализ частей речи.
False: только токенизация.
True: токенизация с анализом частей речи. **Разбиение текста на слова**

pkuseg.test(readFile, outputFile, model_name = "default", user_dict = "default", postag = False, nthread = 10) readFile Входной файл. outputFile Выходной файл. model_name Путь к модели. То же самое, что и pkuseg.pkuseg user_dict Установка пользовательского словаря. То же, что и pkuseg.pkuseg postag Указывает, следует ли включать анализ частей речи. То же, что и pkuseg.pkuseg nthread Число процессов при тестировании.


**Обучение модели**

pkuseg.train(trainFile, testFile, savedir, train_iter = 20, init_model = None) trainFile Файл для обучения. testFile Файл для тестирования. savedir Расположение сохранённой модели. train_iter Количество итераций обучения. init_model Инициализация модели. По умолчанию — None, используется модель по умолчанию. Пользователь может указать путь к собственной модели, например, init_model='./models/'.


#### Многопоточное разбиение на слова

Когда код помещается в файл и выполняется, включая многопоточные функции, обязательно используйте `if __name__ == '__main__'` для защиты глобальных операторов. Подробнее см. в разделе «Многопоточное разбиение на слова» (readme/multiprocess.md).

## Предварительное обучение модели

Для пользователей, которые устанавливают пакет через pip, достаточно установить поле model_name в соответствии с областью применения. Модель будет автоматически загружена.

Пользователи, скачавшие модель с GitHub, должны загрузить соответствующую предварительно обученную модель и установить для поля model_name путь к предварительно обученной модели. Предварительно обученные модели можно скачать в разделе [release](https://github.com/lancopku/pkuseg-python/releases). Ниже приводится описание предварительно обученных моделей:

- **news**: модель, обученная на данных MSRA (новости).

- **web**: модель, обученная на данных из Weibo (интернет-тексты).

- **medicine**: модель, обученная на медицинских данных.

- **tourism**: модель, обученная на туристических данных.

- **mixed**: общая модель, которая поставляется вместе с пакетом pip.

Мы также создали несколько предварительно обученных моделей для конкретных областей с помощью метода адаптации к области и оптимизировали общую модель с использованием данных Википедии без разметки. Эти модели доступны только для скачивания в разделе release:

- **art**: модель, обученная на художественных и культурных данных.

- **entertainment**: модель, обученная на развлекательных и спортивных данных.

- **science**: модель, обученная на научных данных.

- **default_v2**: оптимизированная общая модель после адаптации к области. Она больше по размеру, чем стандартная модель, но имеет лучшую обобщающую способность.

Приглашаем других пользователей поделиться своими собственными моделями для конкретных областей.

## История версий

Подробнее см. в разделе «История версий» (readme/history.md).

## Лицензия с открытым исходным кодом
1. Этот код использует лицензию MIT.
2. Мы приветствуем любые ценные предложения и комментарии от пользователей. Пожалуйста, отправьте электронное письмо на адрес jingjingxu@pku.edu.cn.

## Цитирование научной статьи

Этот пакет кода основан на следующих научных статьях. Если вы используете этот инструмент, пожалуйста, укажите следующие статьи:
* Ruixuan Luo, Jingjing Xu, Yi Zhang, Zhiyuan Zhang, Xuancheng Ren, Xu Sun. [PKUSEG: A Toolkit for Multi-Domain Chinese Word Segmentation](https://arxiv.org/abs/1906.11455). Arxiv. 2019.

@article{pkuseg, author = {Luo, Ruixuan and Xu, Jingjing and Zhang, Yi and Zhang, Zhiyuan and Ren, Xuancheng and Sun, Xu}, journal = {CoRR}, title = {PKUSEG: A Toolkit for Multi-Domain Chinese Word Segmentation.}, url = {https://arxiv.org/abs/1906.11455}, volume = {abs/1906.11455}, year = 2019 }


## Другие связанные научные статьи

* Xu Sun, Houfeng Wang, Wenjie Li. Fast Online Training with Frequency-Adaptive Learning Rates for Chinese Word Segmentation and New Word Detection. ACL. 2012.
* Jingjing Xu and Xu Sun. Dependency-based gated recursive neural network for chinese word segmentation. ACL. 2016.
* Jingjing Xu and Xu Sun. Transfer learning for low-resource chinese word segmentation with a novel neural network. NLPCC. 2017.

## Часто задаваемые вопросы и ответы


1. [Почему был выпущен pkuseg?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#1-为什么要发布pkuseg)
2. [Какие технологии используются в pkuseg?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#2-pkuseg使用了哪些技术)
3. [Не удаётся использовать многопоточное разделение на слова и функцию обучения, появляется сообщение об ошибке RuntimeError и BrokenPipeError.](https://github.com/lancopku/pkuseg-python/wiki/FAQ#3-无法使用多进程分词和训练功能提示runtimeerror和brokenpipeerror)
4. [Как сравнить с другими инструментами на данных для конкретных областей?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#4-是如何跟其它工具包在细领域数据上进行比较的)
5. [Каковы результаты сравнения на чёрном ящике тестового набора?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#5-在黑盒测试集上进行比较的话效果如何)
6. [Что делать, если я не знаю, к какой области относится текст, который нужно разделить на слова?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#6-如果我不了解待分词语料的所属领域呢)
7. [Как интерпретировать результаты разделения на слова для некоторых конкретных примеров?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#7-如何看待在一些特定样例上的分词结果)
8. [Вопрос о скорости выполнения?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#8-关于运行速度问题)
9. [Вопрос о многопоточной скорости?](https://github.com/lancopku/pkuseg-python/wiki/FAQ#9-关于多进程速度问题)

## Благодарности

Спасибо профессору Юй Шивэню (Пекинский университет, Институт вычислительной лингвистики) и доктору философии Цю Ликуну за предоставленные обучающие данные!

## Автор

Ruixuan Luo (罗睿轩),  Jingjing Xu(许晶晶), Xuancheng Ren(任宣丞), Yi Zhang(张艺), Zhiyuan Zhang(张之远), Bingzhen Wei(位冰镇), Xu Sun (孙栩)  

Пекинский университет [Группа исследования языка, вычислений и машинного обучения](http://lanco.pku.edu.cn/)

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-pkuseg.git
git@api.gitlife.ru:oschina-mirror/mirrors-pkuseg.git
oschina-mirror
mirrors-pkuseg
mirrors-pkuseg
master