Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

您好!请教下seg_feature添加的问题? #4

Open
topDreamer opened this issue May 31, 2020 · 6 comments
Open

您好!请教下seg_feature添加的问题? #4

topDreamer opened this issue May 31, 2020 · 6 comments

Comments

@topDreamer
Copy link

image
这个seg_feature我看在构造的时候是BIES对应id是[1,2,3,0]其长度是4,但是你在初始化的时候为什么选择初始化的矩阵是(vocab_size,seg_dim)也就是(499420)的矩阵,不应该是420的矩阵吗?另外请教下这个feature添加的参考源码地址?非常感谢🙏

@DengYangyong
Copy link
Owner

嗨,小熊弟。首先BIE和S是要分开的,S表示实体为1个字,长度为1,BIE表示实体为3个字,长度为3。
其次,emb层是用来干嘛的你要知道,是用来通过id查找对应的向量的,维度就是vocab_size*emb_dim啊,这是常识哦。最后,源码来自于一个我学过的项目,你关注我的公众号:叫我NLPer,然后下载我分享的资料,第九课里面的项目有。

@topDreamer
Copy link
Author

感谢推荐公众号!我的意思楼主好像没看明白哈,你在构造长度特征包含BIE和S共4个长度,这个和词表的长度没关系吧?词表里面任何一个词在映射到长度特征的id可选择的只有(BIE和S共4个长度),所以我认为构造词表初始化矩阵的时候应该是4dim也就是420,麻烦楼主再看下,因为我换成4*20的,跑起来是没任何bug的。

@DengYangyong
Copy link
Owner

哦,对了,是只有4个长度,优秀啊,我得改一下,多谢!

@DengYangyong
Copy link
Owner

这地方确实,压根就没注意,习惯性就把维度设为了 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。你觉得对吗?

@topDreamer
Copy link
Author

我觉得pad的id到向量映射不应该体现在初始化长度特征矩阵里面,长度特征矩阵应该是一个单独的向量矩阵,可供选择的只有[0,1,2,3];
pad的id到向量映射索引应该在char_embedding里面存在,也就是在您的项目里面采用的是预训练的vec.txt里面,这是另外一个单独的向量矩阵;
两者在向量化索引的过程中互相不影响吧?

@DengYangyong
Copy link
Owner

我还是坚持我的想法。每个token是100+20=120维,作为补上去的token,也是120维。加到了字与id的映射中,只能得到100维的向量,所以seg feature中肯定也要给一个20维的向量。另外,vec.txt里面是没有的,一般预训练的词向量里面不会有这个的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants