如何从带有监督分类的文本中提取信息?

时间:2017-07-10 20:21:23

标签: r machine-learning text-mining prediction information-extraction

我试着让我的问题更清楚,如果我使用不正确的条款,我会道歉。

我有以下表格的N个文本文件

  

"最好的数字是200,因为[...]"

     

"我喜欢250多个[...]"

     

" [...] 300是我最喜欢的号码"

     

"没有什么比450 [...]"更好   等

鉴于这份新文件:

  

"顶部的顶部是125 [...]"

如何提取信息" 125"?

我预先处理文本,以便使用regexp将文档的维度从50页减少到2-5个句子。我不会对文字进行任何其他操作

请注意Regexp不是很有用,因为很难找到常规模式,我将不得不处理许多不同类型的信息(不仅仅是数字!)

我认为机器学习方法很有用,所以我为N个文件分配了一个值(即" 200"," 250"," 300&# 34;," 450")我试图预测" 125"使用SVM,来自RTextTools包的MAXENT算法,但效果不佳。

我的机器学习方法是否正确?如何改进我的信息提取方法?

由于

1 个答案:

答案 0 :(得分:0)

假设您有一个向量vec定义如下:

vec <- c("The best number is 200 because [...]",
          "I like 250 more than 120 [...]",
          "[...]300 is my favourite number",
          "Nothing is better than 450[...]",
          "The top of the tops is 125[...]")

您可以使用str_extract_all包中的stringr提取所有整数,并从rebus包构建正则表达式:

library(rebus)
library(stringr)
str_extract_all(vec, pattern = one_or_more(DGT), simplify = TRUE)
#      [,1]  [,2] 
# [1,] "200" ""   
# [2,] "250" "120"
# [3,] "300" ""   
# [4,] "450" ""   
# [5,] "125" ""