2010-06-04 46 views

Trả lời

9

Sử dụng một ví dụ: (điều này được trích xuất từ ​​được đánh dấu như là/VBX, trong đó x là bất cứ ký tự đơn)

library("openNLP") 

acq <- "Gulf Applied Technologies Inc said it sold its subsidiaries engaged in pipeline and terminal operations for 12.2 mln dlrs. The company said the sale is subject to certain post closing adjustments, which it did not explain. Reuter." 

acqTag <- tagPOS(acq) 

sapply(strsplit(acqTag,"[[:punct:]]*/VB.?"),function(x) sub("(^.*\\s)(\\w+$)", "\\2", x)) 

    [,1]       
[1,] "said"       
[2,] "sold"       
[3,] "engaged"      
[4,] "said"       
[5,] "is"       
[6,] "did"       
[7,] " not/RB explain./NN Reuter./." 

Ok, biểu hiện thường xuyên của tôi cần một số cải tiến để thoát khỏi dòng cuối cùng Trong kết quả.

EDIT

Một thay thế có thể là bỏ qua hàng chứa một nhân vật space

sapply(strsplit(acqTag,"[[:punct:]]*/VB.?"),function(x) {res = sub("(^.*\\s)(\\w+$)", "\\2", x); res[!grepl("\\s",res)]}) 
+0

Cảm ơn! gd047 :) nó hoạt động ... Tôi đã gần như trên bờ vực của việc sử dụng sapply cho chiết xuất nhưng không thể có được một cách làm thế nào để làm điều đó. Cảm ơn. –

Các vấn đề liên quan