medical_entity_recognize
medical_entity_recognize copied to clipboard
您好!请教下seg_feature添加的问题?
这个seg_feature我看在构造的时候是BIES对应id是[1,2,3,0]其长度是4,但是你在初始化的时候为什么选择初始化的矩阵是(vocab_size,seg_dim)也就是(499420)的矩阵,不应该是420的矩阵吗?另外请教下这个feature添加的参考源码地址?非常感谢🙏
嗨,小熊弟。首先BIE和S是要分开的,S表示实体为1个字,长度为1,BIE表示实体为3个字,长度为3。 其次,emb层是用来干嘛的你要知道,是用来通过id查找对应的向量的,维度就是vocab_size*emb_dim啊,这是常识哦。最后,源码来自于一个我学过的项目,你关注我的公众号:叫我NLPer,然后下载我分享的资料,第九课里面的项目有。
感谢推荐公众号!我的意思楼主好像没看明白哈,你在构造长度特征包含BIE和S共4个长度,这个和词表的长度没关系吧?词表里面任何一个词在映射到长度特征的id可选择的只有(BIE和S共4个长度),所以我认为构造词表初始化矩阵的时候应该是4dim也就是420,麻烦楼主再看下,因为我换成4*20的,跑起来是没任何bug的。
哦,对了,是只有4个长度,优秀啊,我得改一下,多谢!
这地方确实,压根就没注意,习惯性就把维度设为了 vocab_size * emb_dim。这么说的话,还有一个问题,那就是pad的id也是0,而S的id也是0,忽略pad的id,也会忽略S的id。我看把S的id设为4比较好,加上pad的id,那就是[0,1,2,3,4],词表维度应该是5*20。你觉得对吗?
我觉得pad的id到向量映射不应该体现在初始化长度特征矩阵里面,长度特征矩阵应该是一个单独的向量矩阵,可供选择的只有[0,1,2,3]; pad的id到向量映射索引应该在char_embedding里面存在,也就是在您的项目里面采用的是预训练的vec.txt里面,这是另外一个单独的向量矩阵; 两者在向量化索引的过程中互相不影响吧?
我还是坚持我的想法。每个token是100+20=120维,