v-mipeng / LexiconAugmentedNER

Reject complicated operations for incorporating lexicon for Chinese NER.
436 stars 66 forks source link

soft lexicon 复杂度 #39

Open DSXiangLi opened 3 years ago

DSXiangLi commented 3 years ago

你好还有一个问题想请教,想用词增强主要是想逼近bert的性能又比bert要快。不知道是不是我没完全理解soft lexicon提取每个char 对应B/M/E/S word list的方式,不过一眼看去提取soft lexicon这一步是接近O(N^2)(N是sentence length)的复杂度,因为要遍历句子中任意长度的sentence[i:j]看是否出现在词典中,这样在线上infer的时候虽然模型更轻量,但是是不是会在生成模型输入这一步更加耗时呢?

v-mipeng commented 3 years ago

Q:"这样在线上infer的时候虽然模型更轻量,但是是不是会在生成模型输入这一步更加耗时呢?" A:是的,我们在论文中声明速度更快是指从输入到输出的映射速度更快更轻量。至于说更耗时要看和谁相比,和使用了词典的方法相比,因为大家都要进行词典匹配,在匹配这块的耗时是基本一样的,所以模型整体inference速度仍然取决于模型的推理速度,所以我们声称我们的方法更快是没有问题的。如何和没有使用词典的方法相比,我们的方法肯定是更耗时的。

另外,词典匹配的复杂度应该是O(NK),其中N为序列长度,K为匹配窗口大小,中文中K一般设成10就可以了。

DSXiangLi commented 3 years ago

嗯嗯明白啦,感谢解释~

lvjiujin commented 2 years ago

k 是B/M/E/S每一个词集中匹配词的个数吗?设置成10会不会太大了。