# NLP-tools **Repository Path**: sofiaxue/NLP-tools ## Basic Information - **Project Name**: NLP-tools - **Description**: 本项目旨在通过Tensorflow基于BiLSTM+CRF实现中文分词、词性标注、命名实体识别(NER)。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-07-22 - **Last Updated**: 2022-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README NLP-tools == 本项目旨在通过Tensorflow基于BiLSTM+CRF实现字符级序列标注模型。 功能: 1、对未登录字(词)识别能力 2、Http接口 3、可快速实现分词、词性标注、NER、SRL等序列标注模型 欢迎各位大佬吐槽。 说明 -- 环境配置:创建新的conda环境 $ conda env create -f environment.yaml 语料处理 -- 不同标注语料格式不同,需额外处理,在example/DataPreprocessing.ipynb中提供了人民日报2014预处理过程(该语料集未上传至github,只有部分样例于corpus,可通过互联网找到。若找不到可email me),语料格式:人民网/nz 1月4日/t 讯/ng 据/p [法国/nsf 国际/n。 生成word2id字典和训练数据于data/xx.pkl中。 模型训练 -- $ python train.py [-h] [--dict_path DICT_PATH] [--train_data TRAIN_DATA] [--ckpt_path CKPT_PATH] [--embed_size EMBED_SIZE] [--hidden_size HIDDEN_SIZE] [--batch_size BATCH_SIZE] [--epoch EPOCH] [--lr LR] [--save_path SAVE_PATH] 训练生成checkpoint存入SAVE_PATH, CKPT_PATH用于模型做finetune。 模型默认超参数 -- * 嵌入层向量长度:256 * BiLstm层数:2 * 隐藏层节点数:512 * Batch宽度:128 * 初始学习率:1e-3 (不同任务需做finetune) 模型测试 -- 模型测试示例位于Modeltest.ipynb中。 HTTP接口 -- 一个简单的web server $ python app.py 执行python,默认本机测试代码:(linux和windows下格式不同) $ curl -i -H "Content-Type: application/json" -X POST -d '{"text":"\u5f20\u51cc\u745e\u3002"}' http://localhost:7777/cws 现状 -- 在人民日报上的分词能达到正确率97%,词性标注能达到正确率96%。 通过对该模型在上亿条句子上的训练结果测试,将CWS、POS、NER标签做成end2end的融合标签,综合正确率能达到96%,且对未登录字(词)识别能力佳,拥有对语义的捕获能力。 (在Modeltest.ipynb中列举了一些例子) 最近一直在看Google神奇BERT,后续会添加BERT的序列标注训练模块进来,让模型在不同领域进行迁移。 参考 -- 本项目模型BiLSTM+CRF参考论文:http://www.aclweb.org/anthology/N16-1030