{ "info": { "author": "liushaoweihua", "author_email": "liushaoweihua@126.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[English Version](https://github.com/liushaoweihua/keras-bert-ner/blob/master/README.md) | [\u4e2d\u6587\u7248\u8bf4\u660e](https://github.com/liushaoweihua/keras-bert-ner/blob/master/README_ZH.md)\n\n# Keras-Bert-Ner\n\nKeras solution of **Chinese NER task** using **BiLSTM-CRF/BiGRU-CRF/IDCNN-CRF** model with Pretrained Language Model: supporting **BERT/RoBERTa/ALBERT**).\n\n## Update Logs\n\n* **2020.02.27** Reconstruct the code of `keras_bert_ner` and remove some redundant files. `bert4keras == 0.2.5` is now integrated as a main part of this project.\n\n* **2019.11.14** `bert4keras` is now used as a package as it does not change greatly. The **albert model** can only support Google's version now.\n\n* **2019.11.04** Fix bugs for wrong result when calculating sentence accuracy and doing prediction.\n\n* **2019.11.01** Replace crf_accuracy/crf_loss from `keras-contrib` with self-defined crf_accuracy/crf_loss to handle **mask tags**.\n\n## Future Work\n\n* Migrate to tensorflow 2.0.\n\n* Add other BERTs models, like Distill_Bert, Tiny_Bert.\n\n## Dependencies\n\n* flask == 1.1.1\n* keras == 2.3.1\n* numpy == 1.18.1\n* loguru == 0.4.1\n* termcolor == 1.1.0\n* tensorflow == 1.13.1\n* keras_contrib == 2.0.8\n\n## Train Phase\n\n> **Data Format**\n\n```json\n[\n [\n \"\u63ed\u79d8\u8da3\u6b65\u9a97\u5c40\uff0c\u8da3\u6b65\u662f\u4ec0\u4e48\uff0c\u8da3\u6b65\u662f\u600e\u4e48\u8d5a\u94b1\u7684\uff1f\u8da3\u6b65\u516c\u53f8\u53ef\u9760\u5417\uff1f\u8da3\u6b65\u5408\u6cd5\u5417\uff1f\u76f8\u4fe1\u662f\u4f17\u591a\u5c0f\u4f19\u4f34\u6700\u5173\u5fc3\u7684\u8bdd\u9898\uff0c\u4eca\u5929\u5c0f\u7f16\u5c31\u6765\u7ed9\u5927\u5bb6\u63ed\u5f00\u8da3\u6b65\u8fd9\u9762\u201c\u4e11\u6076\u201d\u4e14\u795e\u79d8\u7684\u9762\u7eb1\uff0c\u8ba9\u5c0f\u4f19\u4f34\u4eec\u770b\u6e05\u4e8b\u60c5\u7684\u771f\u76f8\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u7528\u7b80\u5355\u7684\u6587\u5b57\uff0c\u7ed9\u5927\u5bb6\u8be6\u7ec6\u5256\u6790\u4e00\u4e0b\u8da3\u6b65\u516c\u53f8\u53ca\u8da3\u6b65app\u7684\u903b\u8f91\u5230\u5e95\u662f\u4ec0\u4e48\u6837>\u7684\uff1f3\u5206\u949f\u65f6\u95f4...\u5168\u6587\uff1a?\u63ed\u79d8\u8da3\u6b65\u9a97\u5c40\uff0c\u8da3\u6b65\u662f\u4ec0\u4e48\uff0c\u8da3\u6b65\u662f\u600e\u4e48\u8d5a\u94b1\u7684\uff1f\u8da3\u6b65\u516c\u53f8\u53ef\u9760\u5417\uff1f\u8da3\u6b65\u5408\u6cd5\u5417\uff1f\u76f8\u4fe1\u662f\u4f17\u591a\u5c0f\u4f19\u4f34\u6700\u5173\u5fc3\u7684\u8bdd\u9898\uff0c\u4eca\u5929\u5c0f\u7f16\u5c31\u6765\u7ed9\u5927\u5bb6\u63ed\u5f00\u8da3\u6b65\u8fd9\u9762\u201c\u4e11\u6076\u201d\u4e14\u795e\u79d8\u7684\u9762\u7eb1\uff0c\u8ba9\u5c0f\u4f19\u4f34\u4eec\u770b\u6e05\u4e8b\u60c5\u7684\u771f\u76f8\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u7528\u7b80\u5355\u7684\u6587\u5b57\uff0c\u7ed9\u5927\u5bb6\u8be6\u7ec6\u5256\u6790\u4e00\u4e0b\u8da3\u6b65\u516c\u53f8\u53ca\u8da3\u6b65app\u7684\u903b>\u8f91\u5230\u5e95\u662f\u4ec0\u4e48\u6837\u7684\uff1f3\u5206\u949f\u65f6\u95f4...\u5168\u6587\uff1a\",\n \"O O B I O O O B I O O O O B I O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O B I O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O\"\n ],\n [\n \"\u4f01\u4e1a\u7eb3\u7a0e\u8d37\u989d\u5ea6\uff0c\u5168\u56fd\u5c0f\u5fae\u4f01\u4e1a\u90fd\u53ef\u505a\uff01\u516c\u53f8\u5f20\u603b\u8bf4\uff1a\u201c\u6ca1\u60f3\u5230\u7f34\u7a0e\u8fd8\u80fd\u529e\u8d37\u6b3e\uff0c\u672c\u6765\u6211\u4eec\u8fd8\u5728\u4e3a\u51c6\u5907\u7eb3\u7a0e\u8bc1\u660e\u3001\u94f6\u884c\u6d41\u6c34\u800c\u7126\u8e81\uff0c\u8fd9\u4e0b\u597d\u4e86\uff0c3\u5206\u949f\u89e3\u51b3\u6211\u4eec\u71c3\u7709\u4e4b\u6025\uff0c\u8fd9\u6b21\u5f53\u7b2c\u4e00\u4e2a\u5403\u8783\u87f9\u7684\u4eba\u53ef\u771f\u503c\u5f97\uff01\u201d\u81f3\u4eca\uff0c\u4ea7\u54c1\u4e0a\u7ebf\u63a8\u5e7f\u4e24\u6708\u6709\u4f59\uff0c\u4eca\u5929\u6b63\u5f0f\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u6b3e\u4e3b\u8981\u6ee1\u8db3\u5c0f\u5fae\u4f01\u4e1a\u751f\u4ea7\u7ecf\u8425\u8fc7>\u7a0b\u4e2d\u771f\u5b9e\u5408\u6cd5\u7684\u6d41\u52a8\u8d44\u91d1\u9700\u6c42\u7684\u201c\u7eb3\u7a0e\u8d37\u201d\u4ea7\u54c1\uff01\u4e00\u3001\u4ea7\u54c1\u7279\u70b91\u3001\u8d37\u6b3e\u989d\u5ea6\uff1a\u6700\u9ad8300\u4e072\u3001\u8d37\u6b3e\u671f\u9650\uff1a12\u4e2a\u67083\u3001\u8d37\u6b3e\u5229\u7387\uff1a\u6700\u4f4e\u6708\u606f4\u53984\u3001\u8d37\u6b3e\u7c7b\u578b\uff1a\u514d\u62b5\u62bc\u3001\u514d\u62c5\u4fdd\u3001\u7eaf\u4fe1\u75285\u3001\u8fd8\u6b3e\u65b9\u5f0f\uff1a\u540e\u606f\u540e\u672c6\u3001\u7533\u8bf7\u65b9\u5f0f\uff1a\u7ebf\u4e0a\u7533\u8bf7\uff0c\u65e0\u9700\u63d0\u4f9b\u7eb8\u8d28\u6750\u6599\u3002\u4e8c\uff0c\u51c6\u5165\u6761\u4ef6\uff1a1\u3001\u4f01\u4e1a\u6cd5\u4eba\uff0c\u4f01\u4e1a\u4e3b\u4e3a\u4e2d\u56fd\u5185\u5730\u516c\u6c11\uff0c\u5e74\u9f8418-65\u5468\u5c81\u4e4b\u95f42\u3001\u4f01\u4e1a\u751f\u4ea7\u7ecf\u84251\u5e74\u4ee5\u4e0a\uff0c\u4f01\u4e1a\u53ca\u4f01\u4e1a\u4e3b\u4fe1\u7528\u72b6\u51b5\u826f\u597d3\u3001\u878d\u8d44\u94f6\u884c\u603b\u8ba1\u4e0d\u8d85\u8fc73\u5bb6(\u4f4e\u98ce\u9669\u53ca\u5c0f\u989d\u7f51\u8d37\u4e1a\u52a1\u9664\u5916\uff094\u3001\u7eb3\u7a0e\u7b49\u7ea7A\u3001B\u3001C\u7ea7\uff0c\u7eb3\u7a0e\u603b\u989d2\u4e07\u4ee5\u4e0a\uff0c\u8bda\u4fe1\u7eb3\u7a0e\uff0c\u65e0\u6b20\u7f34\u7a0e\u6b3e\u60f3\u4f53\u9a8c\u201c\u7eb3\u7a0e\u8d37\u201d\u5417\uff1f\u6b22\u8fce\u52a0\u897f\u90e8\u52a9\u8d37\u3002\u6211\u4eec\u56e2\u961f\u5c06\u4e3a\u4f60\u63d0\u4f9b\u5168\u65b9\u4f4d\u3001\u5b9a\u5236\u5316\u7684\u670d\u52a1\u3002\u767e\u4e07\u6279\u6b3e\uff0c3\u5206\u949f>\u5b8c\u6210\u82e5\u4f60\u6709\u94f6\u884c\u8d37\u6b3e\u9700\u6c42\uff0c\u4f46\u4e0d\u7b26\u5408\u8fd9\u4e2a\u4ea7\u54c1\u7684\u8981\u6c42\uff0c\u8bf7\u6dfb\u52a0\u4e13\u5458\u7684\u4e2a\u4eba\u5fae\u4fe1\u8fdb\u884c\u54a8\u8be2\u5176\u4ed6\u4ea7\u54c1\u3002\u6211\u4eec\u4f1a\u6839\u636e\u4f60\u7684\u5177\u4f53\u6761\u4ef6\u4e3a\u4f60\u7efc\u5408\u7b56\u5212\u4e0e\u4f18\u5316\uff0c\u5339\u914d\u7533\u8bf7\u5176\u4ed6\u4f4e\u6210\u672c\u7684\u4ea7\u54c1\uff0c\u4e3a\u60a8\u89e3\u51b3\u8d44\u91d1\u5468\u8f6c\u9700\u6c42\uff0c\u6b22\u8fce\u54a8\u8be2~\u897f\u90e8\u52a9\u8d37\u662f\u4f19\u4f34\u9886\u57df\u8d44\u672c\u65d7\u4e0b\u4e13\u4e1a\u7684\u52a9\u8d37\u5e73\u53f0\uff0c\u4e13\u6ce8\u4e8e\u897f\u90e8\u5730\u533a\u8d37\u6b3e\u7814\u7a76\uff0c\u4e3b\u8425\u4e2a\u4eba\u53ca\u4e2d\u5c0f\u5fae\u4f01\u4e1a\u878d\u8d44\u8d37\u6b3e\u91d1\u878d\u54a8\u8be2\u670d\u52a1\u3002\u91d1\u878d\u56e2\u961f\u79c9\u627f\u5168\u5fc3\u5168\u610f\u5fae\u4f01\u4e1a\u670d\u52a1\u7684\u7406\u5ff5\u670d\u52a1\u5ba2\u6237\uff0c\u6211\u4eec\u56e2\u961f\u670d\u52a1\u7684\u5ba2\u623780%\u90fd\u662f\u6155\u540d\u800c\u6765\u4e0e\u8001\u5ba2\u6237\u8f6c\u4ecb\u7ecd\uff01\u670d\u52a1\u4fe1\u5f97\u8fc7\uff01\u6b22\u8fce\u60a8\u54a8\u8be2\uff01\u6211\u662f\u897f\u90e8\u52a9\u8d37\uff0c\u4e3b\u8425\u4e2a\u4eba/\u4e2d\u5c0f\u4f01\u4e1a\u8d37\u6b3e\u91d1\u878d\u670d\u52a1\uff0c\u5982\u60a8\u6709\u8d37\u6b3e\u9700\u6c42\uff0c\u6b22\u8fce\u62e8\u6253\u5168\u56fd\u7edf\u4e00\u5ba2\u670d\u70ed\u7ebf40087-90508\uff0c\u968f\u65f6\u54a8\u8be2\u66f4\u591a\u6700\u65b0\u4fe1\u606f\u3002\u4e5f\u6b22\u8fce\u60a8\u628a\u8fd9\u7bc7\u6587\u7ae0\u8f6c\u53d1\u7ed9\u8eab\u8fb9\u6709\u9700\u8981\u7684\u670b\u53cb\u3002\",\n \"O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O\"\n ],\n...\n]\n```\n\nSee in `./examples/data/train.txt`, data source: [\u4e92\u8054\u7f51\u91d1\u878d\u65b0\u5b9e\u4f53\u53d1\u73b0](https://www.datafountain.cn/competitions/361)\n\n> **Parameters**\n\nRun `python keras_bert_ner/helper.py train` for quick browse.\n\n```bash\n(nlp) liushaoweihua@ai-server-8:~/projects/Ner/tools/Keras-Bert-Ner$ python keras_bert_ner/helper.py train\nusage: helper.py [-h] -train_data TRAIN_DATA [-dev_data DEV_DATA]\n [-save_path SAVE_PATH] [-albert] -bert_config BERT_CONFIG\n -bert_checkpoint BERT_CHECKPOINT -bert_vocab BERT_VOCAB\n [-do_eval] [-device_map DEVICE_MAP]\n [-tag_padding TAG_PADDING] [-best_fit]\n [-max_epochs MAX_EPOCHS]\n [-early_stop_patience EARLY_STOP_PATIENCE]\n [-reduce_lr_patience REDUCE_LR_PATIENCE]\n [-reduce_lr_factor REDUCE_LR_FACTOR]\n [-hard_epochs HARD_EPOCHS] [-batch_size BATCH_SIZE]\n [-max_len MAX_LEN] [-learning_rate LEARNING_RATE]\n [-model_type MODEL_TYPE] [-cell_type CELL_TYPE]\n [-rnn_units RNN_UNITS]\n [-rnn_num_hidden_layers RNN_NUM_HIDDEN_LAYERS]\n [-cnn_filters CNN_FILTERS] [-cnn_kernel_size CNN_KERNEL_SIZE]\n [-cnn_blocks CNN_BLOCKS] [-dropout_rate DROPOUT_RATE]\nhelper.py: error: the following arguments are required: -train_data, -bert_config, -bert_checkpoint, -bert_vocab\n```\n**Run `python keras_bert_ner/helper.py train --help` for more details.**\n\n> **Some Tips**\n\nIf your pretrained language model are **ALBERT, do remember to add parameter `-albert`**. \n\nIf you want to **get the best training results**, you need to **assign parameters for early-stopping and reduce-learning-rate**(see in train configs), and **do not forget to add parameter `-best_fit`**.\n\n> **Example**\n\nExamples can be seen in `./examples/train_example`. Simply run `bash run_train.sh` to start training. \n\nHere are two templates for **CNN** downstreams and **RNN** downstreams:\n\n**CNN**\n\n```bash\nPRETRAINED_LM_DIR=\"/home/liushaoweihua/pretrained_lm/albert_small_chinese\"\nDATA_DIR=\"../data\"\nOUTPUT_DIR=\"../models\"\n\npython run_train.py \\\n -train_data ${DATA_DIR}/train.txt \\\n -dev_data ${DATA_DIR}/dev.txt \\\n -save_path ${OUTPUT_DIR} \\\n -bert_config ${PRETRAINED_LM_DIR}/albert_config.json \\\n -bert_checkpoint ${PRETRAINED_LM_DIR}/albert_model.ckpt \\\n -bert_vocab ${PRETRAINED_LM_DIR}/vocab.txt \\\n -albert \\\n -do_eval \\\n -device_map \"0\" \\\n -tag_padding \"X\" \\\n -best_fit \\\n -max_epochs 256 \\\n -early_stop_patience 5 \\\n -reduce_lr_patience 3 \\\n -reduce_lr_factor 0.5 \\\n -batch_size 64 \\\n -max_len 64 \\\n -learning_rate 5e-6 \\\n -model_type \"cnn\" \\\n -cnn_filters 128 \\\n -cnn_kernel_size 3 \\\n -cnn_blocks 4 \\\n -dropout_rate 0.0 \\\n -learning_rate 5e-5\n```\n\n**RNN**\n\n```bash\nPRETRAINED_LM_DIR=\"/home/liushaoweihua/pretrained_lm/albert_small_chinese\"\nDATA_DIR=\"../data\"\nOUTPUT_DIR=\"../models\"\n\npython run_train.py \\\n -train_data ${DATA_DIR}/train.txt \\\n -dev_data ${DATA_DIR}/dev.txt \\\n -save_path ${OUTPUT_DIR} \\\n -bert_config ${PRETRAINED_LM_DIR}/albert_config.json \\\n -bert_checkpoint ${PRETRAINED_LM_DIR}/albert_model.ckpt \\\n -bert_vocab ${PRETRAINED_LM_DIR}/vocab.txt \\\n -albert \\\n -do_eval \\\n -device_map \"0\" \\\n -tag_padding \"X\" \\\n -best_fit \\\n -max_epochs 256 \\\n -early_stop_patience 5 \\\n -reduce_lr_patience 3 \\\n -reduce_lr_factor 0.5 \\\n -batch_size 64 \\\n -max_len 64 \\\n -learning_rate 5e-6 \\\n -model_type \"cnn\" \\\n -cell_type \"lstm\" \\\n -rnn_units 128 \\\n -rnn_num_hidden_layers 2 \\\n -dropout_rate 0.0 \\\n -learning_rate 5e-5\n```\n\n**Tag/sentence accuracy can be seen during the training phase and will be saved in the assigned `save_path`.** \n\n## Test Phase\n\n> **Data Format**\n\n```json\n[\n \"\u65f6\u7a7a\u5468\u8f6c\u516c\u4f17\u6ce8\u518c\uff0c\u5f53\u5929\u79d2\u4e0b\u65f6\u7a7a\u5468\u8f6c\u662f\u4e00\u6b3e\u975e\u5e38\u9760\u8c31\u7684\u5c0f\u989d\u73b0\u91d1\u5feb\u6377\u8d37\u6b3e\u5e73\u53f0\u3002\u65f6\u7a7a\u5468\u8f6c\u8d37\u6b3e\u7533\u8bf7\u5230\u4e0b\u6b3e\u5168\u8fc7\u7a0b\u90fd\u662f\u5728\u624b\u673a\u4e0a\u5b8c\u6210\u7684\u3002\u626b\u4e00\u626b\uff0c\u7acb\u5373\u7533\u8bf7\u65f6\u7a7a\u5468\u8f6capp\u529f\u80fd1\u3001\u6781\u901f\u653e\u6b3e:\u81ea\u52a8\u5ba1\u6838\u3001\u6781\u901f\u653e\u6b3e\u3001\u5b9e\u65f6\u5230\u8d26;2\u3001\u6d41\u7a0b\u7b80\u5355:\u5728\u7ebf\u586b\u5199\u8d44\u6599\uff0c\u829d\u9ebb\u4fe1\u7528\u6388\u6743\u5373\u53ef\u8d37\u6b3e;3\u3001\u4fe1\u606f\u5b89\u5168:\u6570\u636e\u5e93\u52a0>\u5bc6\u6280\u672f\u3001\u4fdd\u62a4\u501f\u6b3e\u4eba\u9690\u79c1;4\u3001\u968f\u501f\u968f\u8fd8:\u65e0\u8bba\u4f55\u65f6\u4f55\u5730\u3001\u501f\u6b3e\u8f7b\u677e\uff0c\u8fd8\u6b3e\u4fbf\u6377\u3002\u65f6\u7a7a\u5468\u8f6capp\u4eae\u70b91\u3001\u95ea\u7535\u501f\u6b3e\uff1a\u7eaf\u7ebf\u4e0a\u81ea\u52a8\u5316\u5ba1\u6838\uff0c\u5feb\u81f330\u5206\u949f\u5230\u8d26!2\u3001\u989d\u5ea6\u7075\u6d3b\uff1a\u5355\u671f\u501f\u6b3e\u3001\u73b0\u91d1\u5206\u671f\uff0c\u4e07\u5143\u989d\u5ea6\u4efb\u4f60\u9009\u30023\u3001\u95e8\u69db\u8d85\u4f4e\uff1a\u65e0\u95e8\u69db\u3001\u65e0\u62c5\u4fdd\uff0c\u6709\u8eab\u4efd\u8bc1\u5373\u53ef\u501f\u6b3e\u3002\u5173\u6ce8\u6211\u4eec\uff0c\u66f4\u591a\u53e3\u5b50\u4fe1\u606f\u95ee\uff1a\u6709\u4eba\u5728\u65f6\u7a7a\u5468>\u8f6c\u501f\u6b3e\u8fc7\u5417\u7b54\uff1a\u65f6\u7a7a\u5468\u8f6c\u6b63\u5e38\u60c5\u51b5\u4e0b2-3\u5c0f\u65f6\u4ee5\u5185\uff0c\u4e5f\u6709\u7279\u6b8a\u60c5\u51b5\u3002\u95ee\uff1a\u65f6\u7a7a\u5468\u8f6c\u8d37\u6b3e\u5ba1\u6838\u9700\u8981\u591a\u5c11\u65f6\u95f4\uff0c\u65f6\u7a7a\u5468\u8f6c\u8d37\u6b3e\u5ba1\u6838\u65f6\u95f4\u591a\u957f\u7b54\uff1a\u63d0\u524d\u8fd8\u6b3e\u540e\uff0c\u4e5f\u8fd8\u662f\u80fd\u7ee7\u7eed\u5728\u65f6\u7a7a\u5468\u8f6c\u501f\u6b3e\u7684\u3002\u95ee\uff1a\u65f6\u7a7a\u5468\u8f6c\u6ca1\u6709\u8fd8\u6e05\u8fd8\u53ef\u4ee5\u7533\u8bf7\u5417\uff1f\u7b54\uff1a\u65f6\u7a7a\u5468\u8f6c\uff01\u4e0d\u9700\u8981\u592a\u591a\u7684\u6761\u4ef6\uff0c\u501f\u6b3e\u4e5f\u5f88\u5feb\uff01\u95ee\uff1a\u65f6\u7a7a\u5468\u8f6c\u771f\u7684\u50cf\u5e7f\u544a\u91cc\u9762\u8bf4\u7684\u6ca1\u6709\u4fe1\u7528\u5361\u4e5f\u80fd\u8d37\u6b3e\u5417\u7b54\uff1a\u7528\u8fc7\uff0c\u4e0d\u662f\u7684\uff0c\u65f6\u7a7a\u5468\u8f6c\u6700\u5927\u7684\u597d\u5904\u5c31\u662f\u53ef\u4ee5\u8282\u7701\u5206\u671f\u7684\u624b\u7eed\u8d39\u95ee\uff1a\u65f6\u7a7a\u5468\u8f6c\u597d\u7528\u5417\u65f6\u7a7a\u5468\u8f6c\uff0c\u4f7f\u7528\u7684\u4eba\u591a\u4e0d\u591a\u554a\u7b54\uff1a\u65f6\u7a7a\u5468\u8f6c\u5b83\u7684\u624b\u7eed\u8d39\u662f\u6bd4\u8f83\u4f4e\u7684\uff0c\u800c\u4e14\u8fd8\u6b3e\u538b\u529b\u4e5f\u6bd4\u8f83\u5c0f\u7684\u3002\u4f4e\u4e8e\u94f6\u884c\u4e03\u54e9\u516b\u30025\u4e07\u5757\u4e24\u5e74\u5229\u606f\u624d6000\u591a\uff0c\u5206\u671f\u624b\u7eed\u8d391200\u5de6\u53f3\uff0c\u7b97\u4e0b\u6765\u5728\u65f6\u7a7a\u5468\u8f6c\u5e74\u606f\u53ea\u67097\u4e2a\u70b9\u3002\u8fd8\u53ef\u4ee5\uff0c\u4e00\u822c\u5427\uff0c\u5e73\u53f0\u4e0d\u9519\u95ee\uff1a\u624b\u673aQQ\u91cc\u7a81\u7136\u591a\u4e86\u4e2a\u65f6\u7a7a\u5468\u8f6c\uff0c\u662f\u4ec0\u4e48\uff1f\u6709\u8c01\u77e5\u9053\uff1f\u7b54\uff1a\u65f6\u7a7a\u5468\u8f6c\u4e00\u822c\u4e0d\u4f1a\u7ed9\u501f\u6b3e\u4eba\u7559\u7684\u8054\u7cfb\u4eba\u6253\u7535\u8bdd\u7684\uff0c\u6253\u7535\u8bdd\u4e3b\u8981\u662f\u4e3a\u4e86\u6838\u5b9e\u501f\u6b3e\u4eba\u63d0\u4f9b\u7684\u4fe1\u606f\u662f\u5426\u771f\u5b9e\uff0c\u518d\u6b21\u786e\u5b9a\u501f\u6b3e\u4eba\u662f\u5426\u503c\u5f97\u4fe1\u8d56\u3002\u7edd\u5bf9\u4e0d\u4f1a\u900f\u6f0f\u4e2a\u4eba\u9690\u79c1\",\n \"\u62a2\u7ea2\u5305\u3001\u505a\u4efb\u52a1\u3001\u7f3a\u9500\u8def\u3001\u7f3a\u4eba\u8109\u3001\u63a8\u5e7f\u4ea7\u54c1\uff0c\u6765\u8fd9\u5c31\u5bf9\u4e86!\u517c\u804c\u8d5a\u94b1+\u805a\u96c6\u4eba\u8109!\u672c\u7bc7\u6587\u7ae0\u5c06\u5bf9\u4e24\u79cd\u4eba\u7fa4\u8fdb\u884c\u5206\u6790\uff0c\u4e00\u79cd\u662f\u4e0d\u505a\u4efb\u4f55\u9879\u76ee\uff0c\u53ea\u64b8\u4e9bAPP\u62c9\u65b0\uff0c\u505a\u505a\u4efb\u52a1\u8d5a\u94b1\u7684\u7eaf\u7f8a\u6bdb\u515a\uff0c\u53e6\u4e00\u79cd\u662f\u505a\u9879\u76ee\uff0c\u5e26\u56e2\u961f\u7684\u4e13\u804c\u7f51\u8d5a\u8005.\u901a\u8fc7\u672c\u7bc7\u6587\u7ae0\uff0c\u4f60\u4eec\u4f1a\u77e5\u9053\u8fd9\u624d\u662f\u4f60\u60f3\u8981\u7684\u4e1c\u897f.\u9996\u5148\u8bb2\u7eaf\u7f8a\u6bdb\u515a:\u6253\u5f00\u6b64>\u6b3eAPP\uff0c\u6211\u53d1\u73b0\uff0c\u8fd9\u91cc\u771f\u662f\u7eaf\u7f8a\u6bdb\u515a\u7684\u5929\u5802\uff0c\u5bf9\u4e8e\u7f8a\u6bdb\u515a\uff0c\u6211\u53ea\u4ecb\u7ecd\u8fd9\u4e24\u4e2a\u529f\u80fd.1.\u7ea2\u5305\u5927\u5385:\u6709\u505a\u9879\u76ee\u7684\u4e3a\u4e86\u63a8\u5e7f\u9879\u76ee\uff0c\u4f1a\u53d1\u4e9b\u56fe\u65b9\u5e7f\u544a\uff0c\u4ee5\u7ea2\u5305\u7684\u5f62\u5f0f\uff0c\u4f60\u53ea\u8981\u89c2\u770b10\u79d2\uff0c\u5c31\u80fd\u62a2\u5230\u7ea2\u5305\uff0c\u5bf9\u4e8e\u7f8a\u6bdb\u515a\u6765\u8bf4\uff0c\u5411\u6765\u662f\u4ee5\u91cf\u53d6\u80dc\u7684\uff0c\u800c\u4e14\u4f60\u82e5\u6709\u5fc3\uff0c\u4f60\u4f1a\u53d1\u73b0\u4e0d\u5c11\u7684\u4f18\u8d28\u9879\u76ee.\u4e00\u624b\u8d44\u6e90\u5982\u56fe:2.\u4efb\u52a1\u5927\u5385:\u5c31\u8ddf>\u5176\u5b83\u6bd4\u5982\u8682\u8681\uff0c\u725b\u5e2e\uff0c\u4f17\u4eba\u5e2e\u7b49\u4efb\u52a1\u5e73\u53f0\u4e00\u6837.\u8fd9\u91cc\u53ef\u4ee5\u53d1\u4efb\u52a1\uff0c\u63a5\u4efb\u52a1.\u4ef7\u683c\u4e5f\u4e0d\u9519\uff0c\u6700\u6709\u7a81\u51fa\u7684\u4e00\u4e2a\u5c31\u662f\u6709\u670b\u53cb\u5708\u4efb\u52a1\uff0c\u7b80\u5355\u8f6c\u53d1\u5230\u670b\u53cb\u5708\uff0c\u6700\u4f4e\u662f1\u5143/\u6761\uff0c\u4e24\u4e09\u5757/\u6761\u7684\u4e5f\u6709.\u6bcf\u5929\u5149\u63a5\u8fd9\u4e9b\u4efb\u52a1\uff0c\u90fd\u591f\u4f60\u4e00\u5929\u51e0\u5341\u7684\u4e86.\u5982\u56fe:3.\u8fd9\u91cc\u8981\u987a\u4fbf\u8bf4\u4e0b\u6211\u7684\u5fae\u4fe1\u7fa4\uff0c\u5927\u5bb6\u90fd\u77e5\u9053\uff0c\u6bcf\u4e2a\u4efb\u52a1\u5e73\u53f0\u6536\u5f92\u5f1f\uff0c\u5f92\u5f1f\u5b8c>\u6210\u4efb\u52a1\uff0c\u5e08\u5085\u662f\u6709\u5956\u52b1\u7684\uff0c\u4e4b\u524d\u6211\u5efa\u7acb\u4e86\u4f17\u4eba\u5e2e\uff0c\u725b\u5e2e\uff0c\u4f59\u8d5a\u7f51\uff0c\u95f2\u8da3\u8d5a\u8fd9\u51e0\u4e2a\u5e73\u53f0\u7684\u5f92\u5f1f\u7fa4\uff0c\u6bcf\u5929\u8fd470%\u7684\u5956\u52b1\u7ed9\u5927\u5bb6\uff0c\u5f97\u5230\u4e86\u5f88\u597d\u7684\u6548\u679c.\u5927\u5bb6\u505a\u4efb\u52a1\u90fd\u5f88\u79ef\u6781\uff0c\u4e5f\u5f97\u5230\u4e86\u66f4\u591a\u7684\u5956\u52b1.\u73b0\u5728\u6211\u53c8\u5355\u72ec\u5efa\u7acb\u4e86\u5168\u6c11\u63a8\u7684\u7fa4\uff0c\u56e0\u4e3a\u6211\u53d1\u73b0\u5168\u6c11\u63a8\uff0c\u5728\u6211\u5f00\u901a\u4e86\u91d1\u724c\u7ad9\u957f+VIP\u4f1a\u5458\u540e\uff0c\u6211\u80fd\u5f97\u5230\u5f92\u5f1f30%\u7684\u5956\u52b1\uff0c>\u6240\u4ee5\uff0c\u8fd9\u4e2a\u6570\u5b57\u662f\u975e\u5e38\u53ef\u89c2\u7684\uff0c\u4e3a\u6b64\uff0c\u8bf7\u505a\u4efb\u52a1\u7684\u5144\u5f1f\u4eec\uff0c\u4e00\u5b9a\u8981\u8d70\u6211\u94fe\u63a5\uff0c\u52a0\u6211\u5fae\u4fe1\uff0c\u8fdb\u7fa4\u4eab\u9ad8\u989d\u5206\u7ea2\uff0c\u6bcf\u5929\u7ea2\u5305\u96e8\u8ba9\u4f60\u723d\u7ffb\u5929.\u5f80\u4e0b\u62c9\uff0c\u52a0\u6211\u5fae\u4fe1\u8fdb\u7fa4.\u7b2c\u4e8c\u79cd\u4eba\u7fa4:\u4e13\u804c\u7f51\u8d5a\u5e26\u961f\u5e72\u9879\u76ee\u7684\u4e3a\u4ec0\u4e48\u4e00\u5b9a\u8981\u6765\u8fd9\u91cc\u5462?\u8bf7\u5148\u542c\u4e0b\u6211\u7684\u6545\u4e8b:\u6700\u8fd1\u6211\u624b\u4e0a\u6709\u4e0d\u5c11\u7684\u597d\u9879\u76ee\uff0c\u5374\u4e00\u76f4\u5efa\u7acb\u4e0d\u8d77\u6765\u4e00\u4e2a\u66f4\u5927\u7684\u56e2\u961f\uff0c\u601d\u524d\u601d\u540e\uff0c\u4e3b\u8981\u662f\u6ca1\u6709\u627e\u5230\u53ef\u4ee5\u5f15\u6d41\u7684\u6c60\u5b50.\u4e00\u76f4\u5230\u6211\u6709\u5929\u770b\u670b\u53cb\u5708\u53d1\u73b0\u6709\u4eba\u5728\u63a8\u5e7f\u8fd9\u4e2aAPP\uff0c\u4e0b\u8f7d\u4e4b\u540e\u624d\u53d1\u73b0\u8fd9\u91cc\u662f\u771f\u6b63\u7684\u6d41\u91cf\u6c60.\u597d\u4e86\uff0c\u6211\u53ea\u8bf4\u5230\u8fd9\uff0c\u5e72\u9879\u76ee\u7684\u90fd\u4e0d\u662f\u50bb\u5b50\uff0c\u6211\u53ea\u53d1\u70b9\u56fe\u7ed9\u4f60\u4eec\u770b\uff0c\u5176\u5b83\u81ea\u5df1\u63e3\u6469.\u7b2c\u4e00\u5f20\uff0c\u8bf7\u6ce8\u610f\uff0c\u6570\u5b57:1.79\u4ebf\uff0c\u518d\u770b\u4e2d\u95f4\u5e7f\u544a\u9875\u7684\u70b9\u51fb\u7387\uff0c\u8fd9\u4e0a\u9762\u662f\u4e0d\u65ad\u5237\u65b0\u7684\u8fd9\u4e00\u5f20\uff0c\u662f\u52a0\u7c89\u4e2d\u5fc3\u9875\u9762\uff0c\u53ef\u4ee5\u628a\u81ea\u5df1\u5fae\u4fe1\uff0c\u7fa4\uff0c\u5c0f\u7a0b\u5e8f\uff0c\u516c\u4f17\u53f7\uff0c\u751a\u81f3\u8d27\u6e90\u53d1\u4e0a\u53bb\u7efc\u4e0a\u6240\u8ff0\uff0c\u6211\u89c9\u5f97\u5168\u6c11\u63a8\u8fd9\u6b3eAPP\u662f\u503c\u5f97\u5927\u5bb6\u4e0b\u8f7d\u5b89\u88c5\u7684.\u70b9\u51fb\u5de6\u4e0b\u89d2\u9605\u8bfb\u539f\u6587\u505a\u4efb\u52a1\u7684\u4f19\u4f34\u4eec\u8bb0\u5f97\u52a0\u6211\u5fae\u4fe1\u8fdb\u7fa4\u4eab\u6bcf\u65e570%\u5206\u7ea2!\u6709\u94b1\u5927\u5bb6\u4e00\u8d77\u8d5a\u624d\u662f\u6b63\u786e\u7684\u64cd\u4f5c\u65b9\u5f0f.\u8ddf\u6211\u5e72\u6709\u94b1\u8d5a\u70b9\u51fb\u9605\u8bfb\u539f\u6587\u6ce8\u518c\u5f80\u671f\u7cbe\u5f69\u56de\u987e\u6dd8\u5b9d\u8bc4\u4ef7\u81ea\u52a8\u53d8\u73b0\u5c0f\u800c\u7f8e\u7684\u9879\u76ee\u5168\u56fd\u62db\u6536\u4e91\u95ea\u4ed8\u63a8\u5e7f\u5458:18\u5143/\u5355\uff0c\u4e00\u5355\u4e00\u7ed3\u624b\u673a\u7aefPOS\u673a-\u5e97\u5c0f\u53cb\uff0c\u624b\u673a\u5c31\u662fPOS\u673a\uff0c\u592e\u884c\u652f\u4ed8\u724c\u7167\uff0c\u7528\u53cb\u96c6\u56e2\u65d7\u4e0b\uff0c\u503c\u5f97\u62e5\u6709\u8f6f\u94f6\u652f\u4ed8\u662f\u4ec0\u4e48?\u6709\u4e86\u5e97\u5c0f\u53cb\uff0c\u6211\u4e3a\u4ec0\u4e48\u8fd8\u8981\u63a8\u5e7f\u8f6f\u94f6\u652f\u4ed8?\",\n \"2019\u5065\u5eb7\u884c\u4e1a\u8d8b\u52bf\uff0c\u4f4f\u5bb6\u521b\u4e1a\uff0c\u7a33\u8d5a\u4e0d\u4e8f\",\n...\n]\n```\n\n> **Parameters**\n\nRun `python keras_bert_ner/helper.py test` or `python keras_bert_ner/helper.py predict`for quick browse.\n\n```bash\n(nlp) liushaoweihua@ai-server-8:~/projects/Ner/tools/Keras-Bert-Ner$ python keras_bert_ner/helper.py test\nusage: helper.py [-h] -test_data TEST_DATA -model_configs MODEL_CONFIGS\n [-output_path OUTPUT_PATH] [-device_map DEVICE_MAP]\nhelper.py: error: the following arguments are required: -test_data, -model_configs\n```\n**Run `python keras_bert_ner/helper.py test --help` or `python keras_bert_ner/helper.py predict --help` for more details.**\n\n> **Example**\n\nExamples can be seen in `./examples/test_example`. Simply run `bash run_test.sh` to start testing. \n\n\n## Deploy Phase\n\n> **Example**\n\nExamples can be seen in `./examples/deploy_example`. Simply run `bash run_deploy.sh` to start deploying an API. \n\nThen run `python query.py \"\u65f6\u7a7a\u5468\u8f6c\u516c\u4f17\u6ce8\u518c\uff0c\u5f53\u5929\u79d2\u4e0b\u65f6\u7a7a\u5468\u8f6c\u662f\u4e00\u6b3e\u975e\u5e38\u9760\u8c31\u7684\u5c0f\u989d\u73b0\u91d1\u5feb\u6377\u8d37\u6b3e\u5e73\u53f0\u3002\"` to get the entities.\n\n## Some Chinese Pretrained Language Model\n\n> **BERT**\n* [Google_bert](https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip)\n* [HIT_bert_wwm_ext](https://storage.googleapis.com/chineseglue/pretrain_models/chinese_wwm_ext_L-12_H-768_A-12.zip)\n\n> **ALBERT**\n* [Google_albert_base](https://storage.googleapis.com/albert_models/albert_base_zh.tar.gz)\n* [Google_albert_large](https://storage.googleapis.com/albert_models/albert_large_zh.tar.gz)\n* [Google_albert_xlarge](https://storage.googleapis.com/albert_models/albert_xlarge_zh.tar.gz)\n* [Google_albert_xxlarge](https://storage.googleapis.com/albert_models/albert_xxlarge_zh.tar.gz)\n* [Xuliang_albert_xlarge](https://storage.googleapis.com/albert_zh/albert_xlarge_zh_177k.zip)\n* [Xuliang_albert_large](https://storage.googleapis.com/albert_zh/albert_large_zh.zip)\n* [Xuliang_albert_base](https://storage.googleapis.com/albert_zh/albert_base_zh.zip)\n* [Xuliang_albert_base_ext](https://storage.googleapis.com/albert_zh/albert_base_zh_additional_36k_steps.zip)\n* [Xuliang_albert_small](https://storage.googleapis.com/albert_zh/albert_small_zh_google.zip)\n* [Xuliang_albert_tiny](https://storage.googleapis.com/albert_zh/albert_tiny_zh_google.zip)\n\n> **Roberta**\n* [roberta](https://storage.googleapis.com/chineseglue/pretrain_models/roeberta_zh_L-24_H-1024_A-16.zip)\n* [roberta_wwm_ext](https://storage.googleapis.com/chineseglue/pretrain_models/chinese_roberta_wwm_ext_L-12_H-768_A-12.zip)\n* [roberta_wwm_ext_large](https://storage.googleapis.com/chineseglue/pretrain_models/chinese_roberta_wwm_large_ext_L-24_H-1024_A-16.zip)\n\n## Reference\n* The origin architecture of this repository refers to macanv's work: [BERT-BiLSTM-CRF-NER](https://github.com/macanv/BERT-BiLSTM-CRF-NER). \n* The most important component of keras_bert_ner refers to bojone's work: [bert4keras](https://github.com/bojone/bert4keras).\n* The work of [albert_zh](https://github.com/brightmart/albert_zh), makes it possible for Chinese NER tasks with short inference time and relatively higher accuracy.\n* [BERT](https://github.com/google-research/bert), [ALBERT](https://github.com/google-research/albert), [RoBERTa](https://github.com/pytorch/fairseq/tree/master/examples/roberta).\n\nThanks for all these wonderful works! \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/liushaoweihua/keras-bert-ner.git", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "keras-bert-ner", "package_url": "https://pypi.org/project/keras-bert-ner/", "platform": "", "project_url": "https://pypi.org/project/keras-bert-ner/", "project_urls": { "Homepage": "https://github.com/liushaoweihua/keras-bert-ner.git" }, "release_url": "https://pypi.org/project/keras-bert-ner/1.0.0/", "requires_dist": [ "flask", "keras", "numpy", "loguru", "requests", "termcolor", "tensorflow", "keras-contrib" ], "requires_python": "", "summary": "", "version": "1.0.0", "yanked": false, "yanked_reason": null }, "last_serial": 6716274, "releases": { "0.0.8": [ { "comment_text": "", "digests": { "md5": "c2d03386312ed97ee643e80b305a4439", "sha256": "2b1bf78c0e5998d1cdd7f676c399b1d6d7427d747d87f1954832673b5d729deb" }, "downloads": -1, "filename": "keras_bert_ner-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c2d03386312ed97ee643e80b305a4439", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34698, "upload_time": "2019-11-01T11:44:50", "upload_time_iso_8601": "2019-11-01T11:44:50.106776Z", "url": "https://files.pythonhosted.org/packages/ea/83/a1dfd759b87751b4d6566f0c77620744d19692d8a4ff6095ef9c46ce3a81/keras_bert_ner-0.0.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4ce60f5ebc968e075c70b86f66c06a3a", "sha256": "6e31683755577d3d0e308a29c020fd0b3e551adae4a22c7f3d0c74bea67a7040" }, "downloads": -1, "filename": "keras_bert_ner-0.0.8.tar.gz", "has_sig": false, "md5_digest": "4ce60f5ebc968e075c70b86f66c06a3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36958, "upload_time": "2019-11-01T11:44:52", "upload_time_iso_8601": "2019-11-01T11:44:52.323530Z", "url": "https://files.pythonhosted.org/packages/ac/64/9b172ddfdb28afa7de8c9be7e696a61e0195ad4300e1b2b6134f13bfe1e7/keras_bert_ner-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e588579ae31d60ac3bd8599e61721849", "sha256": "b26b6bd095d8c4f900638c4edf82b87789221a386ec0b93a482ab94ffdd54156" }, "downloads": -1, "filename": "keras_bert_ner-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e588579ae31d60ac3bd8599e61721849", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55884, "upload_time": "2019-11-14T10:53:08", "upload_time_iso_8601": "2019-11-14T10:53:08.418817Z", "url": "https://files.pythonhosted.org/packages/d6/95/76128a53a3772d2337e08b8a3209702cd0c5fc38472afd99fccd58301e45/keras_bert_ner-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6466bb9985dd1fbb7b8508085a3736e3", "sha256": "7d20fdd9f2a8fb1ab41ae3b37840b37aadd208b9527b85c8194191f6c60cb072" }, "downloads": -1, "filename": "keras_bert_ner-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6466bb9985dd1fbb7b8508085a3736e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9226, "upload_time": "2020-02-28T09:35:22", "upload_time_iso_8601": "2020-02-28T09:35:22.258249Z", "url": "https://files.pythonhosted.org/packages/36/83/8816c7e27b009801634db69cf35f0a17e8de658d526672650d6a5009094e/keras_bert_ner-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "92537b76cd4f8191a35984e2508904d4", "sha256": "82835a9ccf0353ec70ab877496e216d0ec64edd7023b2a7442c59487badb0638" }, "downloads": -1, "filename": "keras_bert_ner-1.0.0.tar.gz", "has_sig": false, "md5_digest": "92537b76cd4f8191a35984e2508904d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23247839, "upload_time": "2020-02-28T09:35:57", "upload_time_iso_8601": "2020-02-28T09:35:57.572104Z", "url": "https://files.pythonhosted.org/packages/42/34/d770a7a9f09773bf33b245ee58cc8de066e5a3a57ce42adea3e0fb2b1c07/keras_bert_ner-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6466bb9985dd1fbb7b8508085a3736e3", "sha256": "7d20fdd9f2a8fb1ab41ae3b37840b37aadd208b9527b85c8194191f6c60cb072" }, "downloads": -1, "filename": "keras_bert_ner-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6466bb9985dd1fbb7b8508085a3736e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9226, "upload_time": "2020-02-28T09:35:22", "upload_time_iso_8601": "2020-02-28T09:35:22.258249Z", "url": "https://files.pythonhosted.org/packages/36/83/8816c7e27b009801634db69cf35f0a17e8de658d526672650d6a5009094e/keras_bert_ner-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "92537b76cd4f8191a35984e2508904d4", "sha256": "82835a9ccf0353ec70ab877496e216d0ec64edd7023b2a7442c59487badb0638" }, "downloads": -1, "filename": "keras_bert_ner-1.0.0.tar.gz", "has_sig": false, "md5_digest": "92537b76cd4f8191a35984e2508904d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23247839, "upload_time": "2020-02-28T09:35:57", "upload_time_iso_8601": "2020-02-28T09:35:57.572104Z", "url": "https://files.pythonhosted.org/packages/42/34/d770a7a9f09773bf33b245ee58cc8de066e5a3a57ce42adea3e0fb2b1c07/keras_bert_ner-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }