2015-04-05 27 views
1

我目前正在学习机器学习,因为我认为解决我的问题可能会有帮助。但是,我不确定我应该采用什么技术来解决我的问题。我提前道歉,因为可能对这个领域不够了解,甚至不会提出一个恰当的问题。如何使用机器学习从文档中提取更大的文本块?

我想要的是提取针织花样的重要部分(实际花样,并非所有的介绍和类似的东西)。举例来说,我想喂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:对于页面中的每个句子,您想要确定它是否与您相关。或者,您有不同类别的相关句子,例如“标题”和“路线”。

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

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

首先,您可以尝试一些简单但受欢迎的分类方法,如Naive Bayes

+0

这是我没有考虑过的替代方案,非常感谢!由于它们倾向于在一起,因此我更多地考虑为每个大块文本“找到边界”。我想用你的方法,我会失去“这句话在句子之后是正确的,这绝对是方向的一部分”的信息,这可能是重要的,但它绝对值得一试。 – karianneberg 2015-04-05 21:26:51

+0

如果句子的位置很重要,您还可以考虑将有关前一句话的信息作为当前句子的一个特征添加。或者,您可以使用特别针对序列分类的机器学习系统,例如隐马尔可夫模型或条件随机场。 – yvespeirsman 2015-04-05 21:32:26