我试着让我的问题更清楚,如果我使用不正确的条款,我会道歉。
我有以下表格的N个文本文件
"最好的数字是200,因为[...]"
"我喜欢250多个[...]"
" [...] 300是我最喜欢的号码"
"没有什么比450 [...]"更好 等
鉴于这份新文件:
"顶部的顶部是125 [...]"
如何提取信息" 125"?
我预先处理文本,以便使用regexp将文档的维度从50页减少到2-5个句子。我不会对文字进行任何其他操作
请注意Regexp不是很有用,因为很难找到常规模式,我将不得不处理许多不同类型的信息(不仅仅是数字!)
我认为机器学习方法很有用,所以我为N个文件分配了一个值(即" 200"," 250"," 300&# 34;," 450")我试图预测" 125"使用SVM,来自RTextTools包的MAXENT算法,但效果不佳。
我的机器学习方法是否正确?如何改进我的信息提取方法?
由于
答案 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" ""