Проект использует модель BiLSTM+CRF, ссылаясь на статью: http://www.aclweb.org/anthology/N16-1030, а также IDCNN+CRF, ссылаясь на статью: https://arxiv.org/abs/1702.02098
Установите bazel — инструмент для сборки кода, а также tensorflow (в проекте требуется версия tf 1.0.0alpha или выше).
Перейдите в директорию с кодом проекта и запустите команду ./configure
.
Соберите бэкенд сервис.
bazel build //kcws/cc:seg_backend_api
Подпишитесь на публичный аккаунт "待字闺中", отправьте сообщение "kcws" для получения ссылки на скачивание данных обучения:
Распакуйте данные обучения в одну директорию.
Перейдите в директорию с кодом и выполните следующие команды: ```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
Установите 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)
Создайте vocab
bazel build kcws/cc:dump_vocab
./bazel-bin/kcws/cc/dump_vocab vec.txt kcws/models/basic_vocab.txt
Экспортируйте обученную модель
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
Скачивание модели для распознавания частей речи (временный вариант, подробнее будет указано в последующих документах)
Скачайте pos_model.pbtxt с https://pan.baidu.com/s/1bYmABk в директорию kcws/models/
Запустите веб-сервис
./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/
Примечание: пример использования модели для распознавания названий компаний:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )