Artificial intelligence 不完备训练集下的文档分类

Artificial intelligence 不完备训练集下的文档分类,artificial-intelligence,neural-network,document-classification,Artificial Intelligence,Neural Network,Document Classification,请给我一些建议。我有一个文档集合,所有文档都有一个共同的属性(例如法语出现),其中一些文档被标记为与此集合无关(例如法语亲吻出现),但并非所有文档都保证已被识别。找出哪些其他文档不属于哪个文档的最佳方法是什么 某些类型的神经网络(如Rosenblatt感知器)可以在erroneus数据集上进行训练,并且可以显示出比tranier更好的性能。此外,在许多情况下,你应该犯错误,以避免过度训练 您可以随机标记所有未标记的文档,训练几个网络,并在测试集中评估它们的性能(当然,您不应该在测试集中包括未标记

请给我一些建议。我有一个文档集合,所有文档都有一个共同的属性(例如法语出现),其中一些文档被标记为与此集合无关(例如法语亲吻出现),但并非所有文档都保证已被识别。找出哪些其他文档不属于哪个文档的最佳方法是什么

  • 某些类型的神经网络(如Rosenblatt感知器)可以在erroneus数据集上进行训练,并且可以显示出比tranier更好的性能。此外,在许多情况下,你应该犯错误,以避免过度训练
  • 您可以随机标记所有未标记的文档,训练几个网络,并在测试集中评估它们的性能(当然,您不应该在测试集中包括未标记的文档)。之后,您可以在循环中重新计算未标记文档的权重,如w_i=质量总和(j)*w_ij,然后重复训练和重新计算权重等。由于该过程相当于引入新的隐藏层并通过Hebb过程重新计算其权重,因此,如果正集合和负集合在某些网络特征空间中是线性可分离的,则整个过程应该收敛
  • 首先,您应该注意如何提取样本文档的特征。数一数每一个字不是一个好方法。您可能需要一些像TFIDF这样的技术来告诉分类器哪些单词对分类很重要,哪些不重要

  • 建立正确的词典。在你的例子中,单词法式亲吻应该是一个独特的单词,而不是一系列的法式+亲吻。使用正确的技术建立正确的词典是很重要的

  • 样本中的剩余误差是正常的,我们称之为“非线性可分离”。关于如何解决这个问题,有大量的先进研究。例如,SVM(支持向量机)就是您喜欢使用的。请注意,单层Rosenblatt感知器对于不可线性分离的数据集通常表现出非常糟糕的性能

  • 假设 以您的“法语”为例,我将假定该功能是文档中出现的一个单词。另外,既然你提到“法式接吻”是不相关的,我将进一步假设在你的例子中,特征是一个用在特定意义上的词。例如,如果“游泳池”是一项功能,您可能会说提到游泳池的文档是相关的,但那些谈论游泳池(这项运动,如斯诺克或台球)的文档是不相关的

    • 注意:尽管词义消歧(WSD)方法可行,但它们需要付出太多的努力,而且对于这一目的来说是一种过度的杀伤力
    建议:本地化语言模型+引导 这样想:你没有一个不完整的训练集,而是一个更小的训练集。我们的想法是使用这些小的训练数据来构建更大的训练数据。这是自举

    对于训练数据中出现的每个特征,仅基于其周围的单词构建语言模型。您不需要为整个文档构建模型。理想情况下,仅包含该功能的句子就足够了。这就是我所说的本地化语言模型(LLM)

    根据您的培训数据构建两个这样的LLM(我们称之为T_0):一个用于相关文档,比如M1,另一个用于无关文档,比如M0。现在,为了构建更大的训练数据,需要基于M1和M0对文档进行分类。对于每个新文档d,如果d不包含特征词,它将自动添加为“坏”文档。如果D包含了特征词,那么在D中考虑这个单词的局部窗口(与构建LLMS相同的窗口大小),并计算M0和M1的单词序列的困惑。将文档分类为较低复杂度的类

    为了形式化,伪代码是:

    T_0 := initial training set (consisting of relevant/irrelevant documents)
    D0 := additional data to be bootstrapped
    N := iterations for bootstrapping
    
    for i = 0 to N-1
      T_i+1 := empty training set
      Build M0 and M1 as discussed above using a window-size w
      for d in D0
        if feature-word not in d
        then add d to irrelevant documents of T_i+1
        else
          compute perplexity scores P0 and P1 corresponding to M0 and M1 using
          window size w around the feature-word in d.
          if P0 < P1 - delta
            add d to irrelevant documents of T_i+1
          else if P1 < P0 - delta
            add d to relevant documents of T_i+1
          else
            do not use d in T_i+1
          end
        end
      end
      Select a small random sample from relevant and irrelevant documents in
      T_i+1, and (re)classify them manually if required.
    end
    
    T_0:=初始培训集(由相关/无关文档组成)
    D0:=要引导的其他数据
    N:=引导的迭代次数
    对于i=0到N-1
    T_i+1:=空训练集
    如上所述,使用窗口大小w构建M0和M1
    对于D0中的d
    如果特征词不在d中
    然后将d添加到T_i+1的无关文档中
    其他的
    使用以下公式计算对应于M0和M1的困惑分数P0和P1
    窗口大小w围绕d中的特征词。
    如果P0
    • 这是你的最后一套训练。在上述引导过程中,需要通过对一些保留数据(也称为开发数据)进行实验来确定参数delta
    • 在小样本上进行手动重新分类,这样在引导过程中噪声不会在所有N次迭代中累积

    我不同意。单层Rosenblatt感知器对于不可线性分离的数据集表现出非常差的性能。