一般来说,识别一种类型的文本与“其他任何东西”的任务是一个相当困难的问题,因为文本中存在如此多的多样性,以至于不可能有任何“其他任何东西”的良好代表性样本。
通常,此问题被视为一类分类问题:其想法是让学习算法仅捕获代表正类的内容,而将其他任何内容视为负类。据我所知,这主要用于作者识别和相关的文体测量任务。PAN 研讨会系列围绕这些任务提供了大量最先进的方法和数据集。
也可以将问题定义为二元分类,但必须非常有创意地处理训练集中的负面实例。您当前方法的主要问题可能是:您的负面实例只是“在站点的所有其他主题中随机选择的”。这意味着分类器只知道来自其训练站点的文本,因此它不知道如何处理任何看起来不像训练数据中看到的任何新文本。一种用于增加负面实例多样性的方法是使用出现在一个正面实例中的一些随机单词自动生成谷歌查询,然后下载谷歌检索到的任何文本作为负面实例。
二元分类的另一个问题是正/负实例的分布:如果您训练一个具有 50/50 正/负的模型,该模型预计默认情况下每个都有 50% 的机会。当应用于包含大部分负面实例的测试集时,这可能会导致巨大的偏差,特别是如果这些看起来不像在训练期间看到的负面实例。
最后要注意区分语义主题和写作风格,因为这两者的特征通常非常不同:在前一种情况下,停用词通常被删除,实词(名词、动词、形容词)很重要(因此一个使用诸如 TFIDF 之类的东西)。在后者中则相反:应保留停用词和标点符号(因为它们是写作风格的良好指标),而删除内容词是因为它们倾向于使模型偏向于主题而不是风格。在基于字符的文体特征中,n-grams 已被证明表现良好……尽管它的工作原理还不是很清楚!