如何使用机器学习从文档中提取更大的文本块?

Posted

技术标签:

【中文标题】如何使用机器学习从文档中提取更大的文本块?【英文标题】:How can I use machine learning to extract larger chunks of text from a document? 【发布时间】:2015-06-10 07:19:26 【问题描述】:

我目前正在学习机器学习,因为我认为这可能有助于解决我遇到的问题。但是,我不确定应该应用哪些技术来解决我的问题。我提前道歉,因为可能对这个领域了解得不够多,甚至无法提出正确的问题。

我想要的是提取针织图案的重要部分(实际图案,而不是所有的介绍和类似的东西)。例如,我想将this web page 输入我的程序并输出如下内容:


    title: "Boot Style Red and White Baby Booties for Cold Weather"
    directions: "
    Right Bootie.
    Cast on (31, 43) with white color.
    Rows (1, 3, 5, 7, 9, 10, 11): K.
    Row 2: K1, M1, (K14, K20), M1, K1, M1, (K14, K20), M1, K1. (35, 47 sts)
    Row 4: K2, M1, (K14, K20), M1, K3, M1, (K14, K20), M1, K2. (39, 51 sts)
    Row 6: K3, M1, (K14, K20), M1, K5, M1, (K14, K20), M1, K3. (43, 55 sts)
    ..."

我一直在阅读有关提取较小部分(如句子​​和单词)以及命名实体识别等内容的文章,但它们似乎都集中在文本的很小部分。

我目前的想法是使用监督学习,但我也很不确定如何从文本中提取特征。像使用字母、单词甚至句子作为特征这样的幼稚方法似乎不足以产生任何令人满意的结果(而且,会有大量特征,除非我使用某种抽样),但是什么找出针织图案中的哪些部分真的是重要特征吗?

有人能指出我提取更大部分文本的算法和方法的正确方向吗?

【问题讨论】:

【参考方案1】:

将其视为直截了当的classification problem:对于页面中的每个句子,您都想确定它是否与您相关。或者,您有不同类别的相关句子,例如“标题”和“方向”。

因此,您需要为每个句子提取包含其状态信息的特征。这可能涉及对句子进行标记,并可能应用某种类型的规范化。最初,我会专注于诸如单个单词(M1K1 等)或 n-gram(多个相邻单词)之类的特征。是的,其中有很多,但是一个好的分类器会知道哪些特征是有用的,哪些不是。如果你真的担心数据稀疏,你还可以通过将类似的“词”如 M1K1 映射到相同的特征来减少特征的数量。

此外,您需要标记一组例句,作为分类器的训练和测试集。这将允许您训练系统、评估其性能并比较不同的方法。

首先,您可以尝试一些简单但流行的分类方法,例如Naive Bayes。

【讨论】:

这是我没有考虑过的替代方案,谢谢!我更多地考虑为每个较大的文本块“找到边界”,因为它们往往是在一起的。我想用你的方法我会丢失“这句话就在那句话之后,这绝对是方向的一部分”的信息,这可能很重要,但绝对值得一试。 如果句子的位置很重要,还可以考虑将前一句的信息作为特征添加到当前句中。或者,您可以使用专门针对序列分类的机器学习系统,例如隐马尔可夫模型或条件随机场。

以上是关于如何使用机器学习从文档中提取更大的文本块?的主要内容,如果未能解决你的问题,请参考以下文章

从具有不同布局的 PDF 文件中提取文本信息 - 机器学习

文本分类(机器学习方法)

文本分类(机器学习方法)

如何在机器学习中赋予文本作为特征和价值? [关闭]

回顾 | Python 机器学习模型简介

使用机器学习对大文本进行分类