Closed 2020zyc closed 2 years ago
测了一下,生成的token-span和entity-list(原始正确的)在同名实体上的映射对不上(如上述例子,第二个张三被丢弃了)
你好,很高兴看到你的issue,这个问题确实存在,我刚刚修改了获取token_span的逻辑并push了。你的提问让我重新审视了get_ent2token_spans
的代码,发现其中的冗余和错误,修正后F1值也有大幅提升。再次感谢你的issue。
https://github.com/gaohongkui/GlobalPointer_pytorch/blob/5146e4d180d865b94c8e0d173320f021df21498d/common/utils.py#L44-L59
下图实现要找token_span,但是好像没考虑同名实体,比如例子(张三传是由张三在2021年拍摄),第一个 张三 可能是属于 movie实体,第二个张三是director实体;
但是下图while循环有个break,匹配到就跳出,以上面的例子看,如果要找第2个张三,似乎匹配到第一个张三就跳出了;
附:代码/common/utils.py/Preprocessor(clss)/get_ent2token_spans(func) @gaohongkui