This is the implementation of our arxiv paper "Simplify the Usage of Lexicon in Chinese NER", which rejects complicated operations for incorporating word lexicon in Chinese NER. We show that incorporating lexicon in Chinese NER can be quite simple and, at the same time, effective.
Python 3.6 Pytorch 0.4.1
CoNLL format, with each character and its label split by a whitespace in a line. The "BMES" tag scheme is prefered.
别 O
错 O
过 O
邻 O
近 O
大 B-LOC
鹏 M-LOC
湾 E-LOC
的 O
湿 O
地 O
The pretrained embeddings(word embedding, char embedding and bichar embedding) are the same with Lattice LSTM
data
folder.data/MSRANER
, data/OntoNotesNER
, data/ResumeNER
and data/WeiboNER
, respectively.To train on the four datasets:
To train on OntoNotes:
python main.py --train data/OntoNotesNER/train.char.bmes --dev data/OntoNotesNER/dev.char.bmes --test data/OntoNotesNER/test.char.bmes --modelname OntoNotes --savedset data/OntoNotes.dset
python main.py --train data/ResumeNER/train.char.bmes --dev data/ResumeNER/dev.char.bmes --test data/ResumeNER/test.char.bmes --modelname Resume --savedset data/Resume.dset --hidden_dim 200
python main.py --train data/WeiboNER/train.all.bmes --dev data/WeiboNER/dev.all.bmes --test data/WeiboNER/test.all.bmes --modelname Weibo --savedset data/Weibo.dset --lr=0.005 --hidden_dim 200
python main.py --train data/MSRANER/train.char.bmes --dev data/MSRANER/dev.char.bmes --test data/MSRANER/test.char.bmes --modelname MSRA --savedset data/MSRA.dset
😊作者您好,关于最终拼接的向量我有一些疑惑: 中文NER中word_embs对应单个字的字向量,gaz中的S集合也是单个字的字向量。 拼接两个(来源不同的)字向量有什么特殊含义吗? 是否可以取消其中一个,或者统一向量来源呢?
请问gigaword_chn.all.a2b.bi.ite50.vec这个文件的路径在哪呢,LatticeLSTM中只有character embeddings和word embeddings
为什么Single的count直接置为1而不用词频? functions.py 103行 为什么要对BMES的空集进行这样的处理?其中对于gazs[idx][label].append(0),这里的0是什么意思?functions.py 120-124行
代码中self.hidden2tag = nn.Linear(self.hidden_dim, data.label_alphabet_size+2),为什么需要加上2,加2之后不是与实际的tag数目不同了吗?
I am now working at Cognitive Computing Lab, Baidu as an NLP researcher.
GitHub Repository