代码之家  ›  专栏  ›  技术社区  ›  StereoMatching

创建一个模型来对句子进行是否合乎逻辑的分类

  •  0
  • StereoMatching  · 技术社区  · 5 年前

    他有两条腿 他有六项法律知识

    我尝试的解决方案:

    我以前做过,如果你有足够的数据的话,效果会很好。问题是我没有一个巨大的数据集,它带有逻辑或不合逻辑的标签。

    在wiki这样的数据集上训练gluonnlp引入的语言模型,用它找出句子的概率。如果句子的概率很高,则将其标记为逻辑,反之亦然。问题是效果不好。

    我估计概率的方法

    def __predict(self):
        lines = self.__text_edit_input.toPlainText().split("\n")
        result = ""
        for line in lines:
            result += str(self.__sentence_prob(line, 10)) + "\n"
    
        self.__text_edit_output.setPlainText(result)
    
    def __prepare_sentence(self, text, max_len):
        result = mx.nd.zeros([max_len, 1], dtype='float32')
        max_len = min(len(text), max_len)
        i = max(max_len - len(text), 0)
        j = 0
        for index in range(i, max_len):
            result[index][0] = self.__vocab[text[j]]
            j = j + 1
        return result
    
    def __sentence_prob(self, text, max_len):
        hiddens = self.__model.begin_state(1, func=mx.nd.zeros, ctx=self.__context)
        tokens = self.__tokenizer(text)
        data = self.__prepare_sentence(tokens, max_len)
        output, _ = self.__model(data, hiddens)
        prob = 0
        for i in range(max_len):
            total_prob = mx.nd.softmax(output[i][0])
            prob += total_prob[self.__vocab[i]].asscalar()
    
        return prob / max_len
    

    语言模型的可能问题:

    1. Do not use correct way to split the sentences(I am using jieba to split the Chinese senteces)
    2. Number of vocab is too small/big(test 10000, 15000 and 30000)
    3. Loss too high(ppl around 190) after 50 epochs?
    4. Number of sentences length should be larger/smaller(tried 10,20,35)
    5. The data I use do not meet my requirements(not every sentences are logical) 
    6. Language model is not appropriate for this task?
    

    有什么建议吗?谢谢

    0 回复  |  直到 5 年前
        1
  •  1
  •   abhilash.shakti    5 年前

    第6期。语言模型不适合此任务? 是主要的问题。语言模型的建立是为了从语言使用(语法、语义等)的角度理解输入文本,而不是得出逻辑结论。因此,即使使用大量数据或非常深入的模型,也可能得不到好的结果。 极其 Symbolic AI . 有很多 ongoing research 在这个地区。