简单的二进制文本分类

Posted

技术标签:

【中文标题】简单的二进制文本分类【英文标题】:Simple Binary Text Classification 【发布时间】:2017-04-08 05:57:35 【问题描述】:

我寻求最有效和最简单的方法,将 80 万多篇学术文章分类为与定义的概念空间相关的 (1) 或不相关的 (0)(此处:learning as it relates to work)。

数据为:标题和摘要(平均=1300 个字符)

任何方法都可以使用,甚至可以组合使用,包括监督机器学习和/或通过建立会产生某些阈值的特征来包含在内。

方法可以借鉴key terms that describe the conceptual space,尽管仅靠简单的频率计数太不可靠。潜在的途径可能涉及潜在语义分析、n-gram、..

为多达 1% 的语料库生成训练数据可能是现实的,尽管这已经意味着手动编码 8,000 篇文章(1=相关,0=不相关),这是否足够?

非常感谢具体的想法和一些简短的推理,因此我可以就如何进行做出明智的决定。非常感谢!

【问题讨论】:

你如何定义相关性?只考虑 1% 的语料库进行训练是不合理的。你的语料库有注释吗?我的意思是每个文档的相关/不相关标签。 【参考方案1】:

几个想法:

    运行 LDA 并获取文档主题和主题词分布(20 个主题,具体取决于您对不同主题的数据集覆盖范围)。将具有最高相关主题的文档的前 r% 指定为相关,将低 nr% 指定为不相关。然后在这些标记的文档上训练一个分类器。

    只需使用词袋并检索与您的查询(您的概念空间)最接近的前 r 个邻居,并将其视为不相关,并在它们上训练分类器。

    如果您有引用,您可以通过标记很少的论文在网络图上运行标签传播。

    不要忘记通过将标题词更改为 title_word1 来使标题词与您的抽象词不同,这样任何分类器都可以对其赋予更多权重。

    将文章分为 100 个集群,然后选择然后手动标记这些集群。根据您的语料库中不同主题的覆盖范围选择 100。您也可以为此使用层次聚类。

    如果相关文档的数量远远少于不相关文档的数量,那么最好的方法是找到与您的概念空间最近的邻居(例如,使用在 Lucene 中实现的信息检索)。然后,您可以手动降低排名结果,直到您认为文档不再相关为止。

这些方法中的大多数是用于文本分类的 BootstrappingWeakly Supervised 方法,您可以参考更多文献。

【讨论】:

以上是关于简单的二进制文本分类的主要内容,如果未能解决你的问题,请参考以下文章

二进制输出的文本分类

文本二进制分类训练期间的波动损失

文本分类,rnn包R

如何评估我自己的文本分类器

朴素贝叶斯文本分类简单介绍

使用 BERT 和 Keras 的神经网络进行文本分类