-4

我試圖讓我的問題更清晰,如果我使用不正確的術語,我表示歉意。如何從帶監督分類的文本中提取信息?

我有以下形式

N個文本文檔 「最好的數量是200,因爲[...]」

「我喜歡250超過120 [...]」

「[...] 300是我最喜歡的數字」

「沒有什麼是比450 [...]」 等

鑑於這種新的文件:

「頂部的頂部是125 [...]」

我怎樣才能提取信息 「125」?

我預處理文本,以便通過使用正則表達式將文檔的維度從50頁減少到2-5個句子。我不對文本做任何其他操作

請注意,正則表達式不應該是非常有用的,因爲它很難找到一個常規模式,我將不得不處理大量不同類型的信息(不僅數字!)

我認爲機器學習方法會很有用,所以我給我的N個文檔(即「200」,「250」,「300」,「450」)分配了一個值,我試圖使用SVe,RTextTools包中的MAXENT算法預測「125」的值,但結果不佳。

我的機器學習方法是否正確,我該如何改進我的信息提取方法?

感謝

+1

嗨!你對文字進行了哪種預處理?你把它分成字符或文字嗎?無論如何,你是否標記源文本字符串?一般來說,你用作ML算法的輸入 - 因爲原始文本作爲單個字符串根本不起作用。請包括它以及一些具體的例子。 –

+0

請閱讀[help/on-topic] –

+0

我修改了指定的示例並添加了關於文本預處理的信息 – pinopino

回答

0

假設你有一個vector 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_allstringr包中提取的所有整數和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" ""