【问题标题】:Classification training with only positive sentences只用正句进行分类训练
【发布时间】:2016-10-17 19:42:37
【问题描述】:

我正在启动一个项目来构建一个自动事实检查分类器,但我对要遵循的过程有些疑问。

我有一个包含约 1000 句句子的数据库,每句都是事实检查。为了建立一个有监督的机器学习模型,我需要有一大组带有真/假结果的标记句子,这取决于它是否是一个事实检查候选句子。这将需要大量的时间和精力,所以我想先得到结果(我猜准确性较低)。

我的想法是使用已经标记的肯定句并对其应用 PoS 标记器。这会给我一些有趣的信息来发现一些模式,比如最常见的词(例如:raised、increas、won)和帖子标签(例如过去/现在时的动词、时间和数字)。

有了这个结果,我正在考虑分配权重以分析新的未分类句子。问题是权重分配将由我以“启发式”方式完成。最好使用 PoS 标注器的结果来训练一些模型,以更复杂的方式分配概率。

如果有办法做到这一点,你能给我一些建议吗?

我阅读了有关最大熵分类器和统计解析器的信息,但我真的不知道它们是否是正确的选择。

编辑(我认为最好提供更多细节):

使用 PoS 标记器解析句子会给我一些关于每个句子的有用信息,让我可以使用一些自定义指标过滤它们并加权它们。

例如:

与五年前相比,贫困人口增加了 100 万 -> 事实核查候选句的指示:动词现在时、数字和日期、(比)比较。

我们将在下一年将 GDP 增加 3% -> 表示非事实检查候选句子:它是将来时(表示某种预测)

【问题讨论】:

    标签: nlp pos-tagger


    【解决方案1】:

    当真正的句子在数据中相对较少时,这种情况经常发生。

    1) 获取与您最终将要分类的句子相似的句子语料库。语料库将包含真假句子。将它们标记为虚假或非事实检查。我们假设它们都是错误的,即使我们知道事实并非如此。如果可能的话,您希望创建的真/假数据的比率接近其实际分布。因此,如果真实数据中有 10% 是正确的,那么对于 1,000 个正确,您假设的错误案例是 90% 或 9,000 个。如果您不知道分布,那么只需将其设置为 10 倍或更多。

    2) 使用交叉验证对数据训练逻辑回归分类器,即最大熵。跟踪保留数据的高分误报。

    3) 将误报重新注释到可能成为真阳性的分数。这有望清除您假定的虚假数据。

    4) 继续运行此过程,直到您不再改进分类器。

    5) 要获得您的“事实检查词”,请确保您的特征提取器将词提供给您的分类器,并寻找那些与真实类别正相关的词——任何体面的逻辑回归分类器都应提供特征权重某种方式。我使用 LingPipe,当然可以。

    6) 我看不出 PoS(词性)如何帮助解决这个问题。

    这种方法将无法找到与训练数据非常不同的真实实例,但它仍然可以工作。

    布雷克

    【讨论】:

    • 感谢 Breck,我添加了一些信息来更好地解释 PoS 位。我想知道您对这种方法有何看法。顺便说一句,我会尝试将您的建议应用到项目中。
    • 尝试 POS 标注器作为一项功能没有坏处。根据你的直觉可以工作。
    猜你喜欢
    • 2011-01-25
    • 2021-07-25
    • 1970-01-01
    • 2018-08-28
    • 2016-09-25
    • 2023-03-04
    • 2018-12-20
    • 2019-08-20
    • 2018-08-03
    相关资源
    最近更新 更多