字符串的布尔分类

数据挖掘 机器学习 算法 监督学习
2022-02-01 16:35:40

我有一个涉及字符串的监督学习(布尔分类)问题。有什么资源可以让我了解这方面的最新技术吗?

我熟悉许多监督学习技术,我们假设每个实例都有固定数量的属性:例如,实例由特征向量表示。但现在我有了不同的东西;我有一个字符串,即一个字符序列。我不知道先验可能是什么合适的功能。在这种情况下,是否有任何通用的机器学习技术?

我对在给定现有训练集的情况下工作的技术特别感兴趣(我没有能力标记其他数据;我不想要主动学习算法),并且支持某种正则化或可以处理嘈杂的标签.


我所做的研究和不符合上述要求的方法:

  • 我熟悉正则表达式、有限自动机、语法归纳LearnLibAngluin's algorithm和类似概念。然而,大部分工作都在主动学习环境中,其中算法生成一个新实例(查询)并要求人类标记该实例。在我的环境中,我必须使用被动学习:我有一个训练集(xi,yi)其中每个xi是一个字符串并且yi是它的类别(正面或负面),但我无法获得更多示例。

  • 我也熟悉自动机最小化,所以我知道如何找到可以在训练集中生成所有正例的最小 DFA,但这并不是一个很好的解决方案。它没有任何正则化或奥卡姆剃刀的概念,并且对标签中的少量错误/噪声不具有鲁棒性。可能有一个非常小的 DFA 可以以 99% 的准确率预测正确的标签,但自动机最小化不会找到它;它过于专注于寻找一个能生成所有正例的自动机,即使这会产生一个更大的自动机。

  • 我也熟悉分离自动机的概念,即在训练集上具有 100% 准确率的最小 DFA(接受所有正实例并拒绝所有负实例)。但是,这与自动机最小化具有相同的问题。此外,这似乎可能会过度拟合,最终最终会记住训练集。最后,我看到的研究文献停止指出,找到最小的分离自动机是 NP 难的,并且不关心寻找尽可能小的分离自动机的实用算法。

  • 我熟悉循环神经网络,但我的印象是它们往往需要非常大的训练集,因此在我的设置中可能不会有用。这种技术的变体是否适用于不是很大的训练集(例如,训练集中的数百个示例)?

  • 我熟悉自然语言处理 (NLP) 文献中的一些技术,但它们似乎非常专门用于解析人类语言。是否有任何适用于其他结构化字符串的通用技术?在我的情况下,字符串不是以某种人类语言编写的人类可读文本,而是具有其他一些内容。

1个回答

这类问题有很多方法,可以定义为文本分类。您可以根据字符串中的标记(单词)创建词频或词频逆文档频率矩阵,然后使用标准机器学习算法,例如 SVM、随机森林、梯度提升树、逻辑回归、朴素贝叶斯。您还可以使用词嵌入和神经网络。在这种情况下,每个单词将被表示为相似单词的向量。最后,我最近一直在试验字符级卷积神经网络,这似乎对用户生成的文本分类很有效。下面有链接。

https://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification.pdf