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

OSCHINA-MIRROR/koth-kcws

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

Цитата

Проект использует модель BiLSTM+CRF, ссылаясь на статью: http://www.aclweb.org/anthology/N16-1030, а также IDCNN+CRF, ссылаясь на статью: https://arxiv.org/abs/1702.02098

Настройка

  1. Установите bazel — инструмент для сборки кода, а также tensorflow (в проекте требуется версия tf 1.0.0alpha или выше).

  2. Перейдите в директорию с кодом проекта и запустите команду ./configure.

  3. Соберите бэкенд сервис.

    bazel build //kcws/cc:seg_backend_api

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

  1. Подпишитесь на публичный аккаунт "待字闺中", отправьте сообщение "kcws" для получения ссылки на скачивание данных обучения:

  2. Распакуйте данные обучения в одну директорию.

  3. Перейдите в директорию с кодом и выполните следующие команды: ```bash python kcws/train/process_anno_file.py <путь к данным обучения> pre_chars_for_w2v.txt

    bazel build third_party/word2vec:word2vec

    Получите начальный словарь

    ./bazel-bin/third_party/word2vec/word2vec -train pre_chars_for_w2v.txt -save-vocab pre_vocab.txt -min-count 3

    Обработайте низкочастотные слова

    python kcws/train/replace_unk.py pre_vocab.txt pre_chars_for_w2v.txt chars_for_w2v.txt

    Обучите word2vec

    ./bazel-bin/third_party/word2vec/word2vec -train chars_for_w2v.txt -output vec.txt -size 50 -sample 1e-4 -negative 5 -hs 1 -binary 0 -iter 5

    Создайте инструмент для подготовки данных обучения

    bazel build kcws/train:generate_training

    Готовьте данные обучения

    ./bazel-bin/kcws/train/generate_training vec.txt <путь к данным обучения> all.txt

    Получите train.txt и test.txt файлы

    python kcws/train/filter_sentence.py all.txt

    
    
  4. Установите TensorFlow, перейдите в директорию с кодом kcws и выполните команду:

pip install tensorflow
```   ```bash
   python kcws/train/train_cws.py --word2vec_path vec.txt --train_data_path <абсолютный путь до файла train.txt> --test_data_path test.txt --max_sentence_len 80 --learning_rate 0.001

(по умолчанию используется модель IDCNN, можно использовать параметр "--use_idcnn False" для использования модели BiLSTM)

  1. Создайте vocab

    bazel build kcws/cc:dump_vocab
    
    ./bazel-bin/kcws/cc/dump_vocab vec.txt kcws/models/basic_vocab.txt
  2. Экспортируйте обученную модель

    python tools/freeze_graph.py --input_graph logs/graph.pbtxt --input_checkpoint logs/model.ckpt --output_node_names "transitions,Reshape_7" --output_graph kcws/models/seg_model.pbtxt
  3. Скачивание модели для распознавания частей речи (временный вариант, подробнее будет указано в последующих документах)

    Скачайте pos_model.pbtxt с https://pan.baidu.com/s/1bYmABk в директорию kcws/models/

  4. Запустите веб-сервис

    ./bazel-bin/kcws/cc/seg_backend_api --model_path=kcws/models/seg_model.pbtxt (абсолютный путь до seg_model.pbtxt) --vocab_path=kcws/models/basic_vocab.txt --max_sentence_len=80

Инструкция по обучению модели для части речи:

https://github.com/koth/kcws/blob/master/pos_train.md

Пользовательский словарь

На данный момент поддерживается использование пользовательского словаря во время декодирования. Для получения информации о конкретном использовании обратитесь к kcws/cc/test_seg.cc Словарь имеет текстовый формат, каждая строка имеет следующий вид:

<пользовательский термин>\t<вес>

Например:

蓝瘦香菇\t4

Вес — положительное целое число, обычно больше 4, чем больше значение, тем важнее термин### Пример http://45.32.100.248:9090/

Примечание: пример использования модели для распознавания названий компаний:

http://45.32.100.248:18080

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

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

Введение

Kcws — это система сегментации слов и проект корпуса на основе глубокого обучения. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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