koth / kcws

Deep Learning Chinese Word Segment
2.08k stars 648 forks source link

关于用该方法做NER的问题 #72

Open yufengzhixing opened 7 years ago

yufengzhixing commented 7 years ago

您好,仔细看了下代码,分词和词性标注训练代码的还是不同的,分词输入的是字向量,词性标注输入的是词和字向量,请问demo实体识别用的是分词的方法还是词性标注的方法,有没有用到词性信息,不知道方便不方便说一下。

changfengfeng commented 6 years ago

train_pos.py 可以考虑用来做实体识别

forever1dream commented 6 years ago

@changfengfeng 对Python不熟悉啊,我就是参考了train_pos.py这个文件,一直没改对,加了一列特征之后,总报错:

def inference(self, wX, cX, pX, reuse=None, trainMode=True):
    word_vectors = tf.nn.embedding_lookup(self.words, wX) 
    char_vectors = tf.nn.embedding_lookup(self.chars, cX) 
    pos_vectors = tf.nn.embedding_lookup(self.poss, pX) 
    char_vectors = tf.reshape(char_vectors, [-1, FLAGS.max_sentence_len,
                                             FLAGS.max_chars_per_word,
                                             FLAGS.embedding_char_size])
    char_vectors = tf.transpose(char_vectors, perm=[1, 0, 2, 3]) 
    char_vectors = tf.expand_dims(char_vectors, -1) 
    length = 15 * self.length(wX)
    length_64 = tf.cast(length, tf.int64)

    # do conv
    def do_char_conv(x): return self.char_convolution(x)
    char_vectors_x = tf.map_fn(do_char_conv, char_vectors)
    char_vectors_x = tf.transpose(char_vectors_x, perm=[1, 0, 2]) 
    #pos_vectors = tf.concat([pos_vectors, char_vectors_x], axis=2)
    #word_vectors = tf.concat([word_vectors, pos_vectors], axis=2)
    word_vectors = tf.concat([word_vectors, char_vectors_x], axis=2)

这个函数 加一个pos的特征 怎么改啊,求教育