请指教。我有一个文档集合,它们都有一个共同的属性(例如出现了法语单词),其中一些文档已被标记为与此集合无关(例如出现法语之吻),但不能保证所有文档都已被识别。找出哪些其他文档不属于的最佳方法是什么。
3 回答
假设
给定您的示例“法语”,我将假设该功能是出现在文档中的单词。另外,由于您提到“法式吻”不相关,我将进一步假设在您的情况下,特征是在特定意义上使用的词。例如,如果“台球”是一个特征,您可能会说提到游泳池的文档是相关的,但那些谈论台球(这项运动,如斯诺克或台球)的文档不相关。
- 注意:虽然词义消歧(WSD) 方法可以工作,但它们需要太多的努力,并且为此目的是过度杀伤力。
建议:本地化语言模型+引导
这样想:你没有一个不完整的训练集,而是一个较小的训练集。这个想法是使用这个小的训练数据来构建更大的训练数据。这是自举。
对于训练数据中出现的每个特征,仅基于其周围的单词构建语言模型。您不需要为整个文档构建模型。理想情况下,仅包含该特征的句子就足够了。这就是我所说的本地化语言模型(LLM)。
从您的训练数据中构建两个这样的 LLM(我们称之为 T_0):一个用于相关文档,例如 M1,另一个用于不相关文档,例如 M0。现在,为了构建更大的训练数据,基于 M1 和 M0 对文档进行分类。对于每个新文档d,如果d不包含特征词,它将自动添加为“坏”文档。如果d包含特征词,则考虑 d 中该词周围的局部窗口(与您用于构建 LLM 的窗口大小相同),并使用 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_N 是你的最终训练集。在上述自举中,参数delta需要通过对一些保留数据(也称为开发数据)的实验来确定。
- 对小样本进行手动重新分类,这样引导过程中的噪声不会在所有N次迭代中累积。
首先,您应该注意如何提取示例文档的特征。数每个字不是一个好方法。您可能需要一些像 TFIDF 这样的技术来教分类器哪些词对分类很重要,哪些词不重要。
建立正确的字典。在您的情况下,French Kiss这个词应该是一个独特的词,而不是 French + Kiss 的序列。使用正确的技术来构建正确的词典很重要。
样本中的剩余误差是正常的,我们称之为“非线性可分”。有大量关于如何解决这个问题的先进研究。例如,您喜欢使用SVM (支持向量机)。请注意,单层 Rosenblatt 感知器通常对非线性可分的数据集表现出非常差的性能。
- 某些类型的神经网络(如 Rosenblatt 感知器)可以在错误数据集上进行训练,并且可以显示出比 tranier 更好的性能。此外,在许多情况下,您应该犯错误以避免过度训练。
- 您可以随机标记所有未标记的文档,训练几个网络并估计它们在测试集上的性能(当然,您不应该在测试集中包含未标记的文档)。之后,您可以循环重新计算未标记文档的权重为 w_i = sum of quality(j) * w_ij,然后重复训练和重新计算权重等等。因为过程相当于引入新的隐藏层并通过 Hebb 过程重新计算其权重,所以如果您的正负集在某些网络特征空间中是线性可分的,则整个过程应该收敛。