liu-nlper / NER-LSTM-CRF

An easy-to-use named entity recognition (NER) toolkit, implemented the Bi-LSTM+CRF model in tensorflow.
347 stars 117 forks source link

您好,我有两个问题 #11

Closed zd25423 closed 6 years ago

zd25423 commented 6 years ago

1.Step 3: 修改data_params下的参数:该参数存放特征和label的voc(即名称到编号id的映射字典),改为相应的路径。 这个具体要求修改什么,能不能举个例子谢谢。 2.我的训练的时候,迭代到20个epoch就停止了,这正常吗? 3.在测试的时候,标记的结果全部都是O

麻烦您了

liu-nlper commented 6 years ago
  1. 例如voc_params/f1/path: './Res/voc/f1.voc.pkl',这里的voc_params/f1/path名称中的f1需要和model_params/feature_names中的名称一致;
  2. 我在自己任务上训练的时候一般也是迭代几十次就early stop了,你看下你的模型loss下降是否正常?
  3. 标记结果全O需要调试看一下原因,可以把你的训练数据发一部分吗?
zd25423 commented 6 years ago

1.好的,那我就继续用f1,f2应该就是ok的吧。

  1. 我的数据大概是这样 出院 n O 医嘱 n O : x O
  2. m O 注意 v O 饮食 n O 及 c O 休息 v O
  3. m O 门诊 n O 随访 v O 。 x O 雅安市 ns B-16 名 q I-16 山区 ns I-16 马岭 ns I-16 镇 n I-16 中心 n I-16 卫生院 nt E-16

还有个问题,不使用CRF模型的时候,这model.py的代码貌似有点问题: 364 mask = tf.sign(tf.reduce_max(tf.abs(labels), axis=2)) 367 cross_entropy*mask, axis=1) / tf.cast(self.actual_sequence_length, tf.float32)

cosmichut commented 6 years ago

同问一下,这个模型如何用于分类而不是CRF,只是简单的将usecrf改成False吗?。。。分类样本是用以下格式吗: (前面是序列的单词,后面是分类类别,但实际上整句都是一个类别) java java 开发 java 工程师 java

软件 后台工程师 开发 后台工程师 工程师 后台工程师 @liu-nlper

liu-nlper commented 6 years ago

@cosmichut 你好,这个就是一个分类任务吧,不适合用序列化标注模型来做。。。

cosmichut commented 6 years ago

谢谢解答,那配置文件中的usecrf的用途是?

liu-nlper commented 6 years ago

@cosmichut 标志是否使用crf层,具体参考15年的论文"Neural Architectures for Named Entity Recognition"

cosmichut commented 6 years ago

感谢回答! 我这边的项目用到了LSTM+CRF, 效果确实比单独的crfsuite库好不少。。通过这个库可以在不用做太多优化的情况下将f1提升到93%-94%。。。用crfsuite只能到90%左右。