Have you ever tried this method on Chinese datasets?
HuimengZhang opened this issue · 13 comments
请问是否在中文数据集上尝试过此方法?此方法需要词性标注信息和词汇信息,请问在中文上效果如何?
你好,在附录部分,我们有比较Weibo NER中文数据集,效果超过FLAT 0.61%。
你好,pos是使用spacy工具标注的。
genia_test_context相比于genia_test多了ltoken和rtoken,表示句子的上下文。
vocab相关文件是模型训练过程中产生的缓存,vocab的生成过程请查看
locate-and-label/identifier/input_reader.py
Line 194 in 0e05376
模型训练只需要该文件夹下的genia_pos.json、genia_test_context.json、genia_train_dev_context.json、genia_types.json。
好的,感谢回复,我先试试跑通demo
你好,pos是使用spacy标注工具的。
genia_test_text 相比于genia_testconn更多的是token和rtoken,表示句子的时间。
vocab相关文件是模型训练过程中产生过程的缓存,请查看vocab的生成过程
locate-and-label/identifier/input_reader.py
Line 194 in 0e05376
模型训练只需要该文件夹下的genia_pos.json、genia_test_context.json、genia_train_dev_context.json、genia_types.json。
我已经跑到了demo,但是不清楚genia_pos.json文件是怎么得来的,中文数据集该如何得到这个文件?
你好,genia_pos.json就是对数据集处理得到的pos进行频率统计,然后编号。中文数据集处理方式相同。
好的,明白
你好,genia_pos.json就是对数据集处理得到的pos进行频率统计,然后编号。中文数据集处理方式相同。
那这个文件的字典的key为词性,value为该词性的数量,是这样吗
是的
test/0001表示文档的id,具有同样org_id的表示同一文档。项目里提供的genia数据集只设置了ltokens,表示只用前文,没用后文。你也可以自己设置,就是把当前实例的rtoken设置为下一个具有相同org_id实例的tokens。
好的,对应中文pos和英文pos有一个疑问,因为英文以空格分词,所以英文的tokens和pos词性可以一一对应上,但是中文分词没有空格,tokens是按字符分的,然后pos是分词工具分的,所以tokens和pos不能一一对应,这种情况该如何处理?或者不一样对用模型还能跑通吗?
你好,跑不通。你可以稍微修改代码,去除数据预处理对pos字段的依赖(同时设置use_pos = False
),主要是修改:
locate-and-label/identifier/input_reader.py
Line 232 in 0e05376
另外有个简单的方法,数据集文件中pos随便设置为和tokens等长的序列。然后模型配置文件中设置use_pos = False
:
locate-and-label/configs/example.conf
Line 60 in 0e05376