chilynn / sequence-labeling

307 stars 167 forks source link

请教,作者用这个程序跑过一些NLP任务吗?效果如何? #6

Open letiantony opened 7 years ago

letiantony commented 7 years ago

@chilynn,您好,试用了您的程序,用2万的数据跑了分词,F值在93%左右(单纯用CRF也有95%),刚刚接触深度学习应该是有些trick。陈利人老师最近发了一个博客,用BILSTM+CRF能达到97.5%的准确率。 文章标题《97.5%准确率的深度学习中文分词(字嵌入+Bi-LSTM+CRF)》 请问作者有跑过一些NLP任务吗?效果与state of the art比效果如何。

chilynn commented 7 years ago

你好,不知道你与陈老师是否都是用的2014年人民日报的语料,不同语料会有些差异。我之前基于1998年的人民日报语料做过测试,针对组织机构识别这个任务,bilstm_crf会比bilstm提升4%个点左右,bilstm_crf效果低于crf大概3%,我猜可能的原因是数据量偏小和需要大量的调参工作

letiantony commented 7 years ago

您好,请教一个code细节问题,bilstm_crf.py中predictBatch()函数,278行y_pred = ''.join([id2label[val] for val in predicts[i] if val != 5 and val != 0])。 id2label[0]代表"",那id2label[5]是什么含义呢?或者说‘if val != 5 ’这个条件是为了达到什么效果呢?

chilynn commented 7 years ago

你好,由于所有操作都是基于矩阵的操作,所以所有的句子必须是定长的(例如长度为200),对不够长的句子要进行padding,用""表示,也就是val=0。val=5代表一个句子的开始部分START,是一个额外的辅助标识。label2id文件中给出了相关的映射(除了val=5)。

honghuge commented 6 years ago

@letiantony ,你好,请问你用的是什么数据集。