У меня есть рабочий код для получения выходных данных токенатора из CoreNLP с использованием lapply и do.call. Мне нужна помощь, чтобы достичь 2 вещи, если это возможно:Добавьте столбец идентификатора в R-файл для вывода токенатора CoreNLP, используя lapply
- Добавить идентификатор документа в самой функции применения (В настоящее время код не имеет этот столбец добавляется)
- Достигнуть результаты do.call в применить саму функцию (если это возможно)
Этот пост parallel parLapply setup, который использует функцию «lapply». Но он просто работает над текстовым вектором и не учитывает и столбца id.
Код:
#Fake data - Quotes from Great Expectations by Charles Dickens
textcolumn<-c("The broken heart. You think you will die, but you just keep living, day after day after terrible day.",
"We need never be ashamed of our tears.")
DocId <-c(1:length(textcolumn))
options(java.parameters = "-Xmx2g")
library(coreNLP)
#initCoreNLP() # change this if downloaded to non-standard location
initCoreNLP(annotators = "tokenize,ssplit,pos")
# Function to tokenize
tokenize <- function(textcolumn) {
tmp<-annotateString(textcolumn)
tokens<-getToken(tmp)
colnames(tokens)<-tolower(colnames(tokens))
tokens[,c("sentence", "id", "token" ,"pos")]
}
result <- lapply(textcolumn,tokenize)
final <- do.call(rbind,result)
Выход
> final
sentence id token pos
1 1 1 The DT
2 1 2 broken JJ
3 1 3 heart NN
4 1 4 . .
5 2 1 You PRP
6 2 2 think VBP
7 2 3 you PRP
8 2 4 will MD
9 2 5 die VB
10 2 6 , ,
11 2 7 but CC
12 2 8 you PRP
13 2 9 just RB
14 2 10 keep VBP
15 2 11 living NN
16 2 12 , ,
17 2 13 day NN
18 2 14 after IN
19 2 15 day NN
20 2 16 after IN
21 2 17 terrible JJ
22 2 18 day NN
23 2 19 . .
24 1 1 We PRP
25 1 2 need VBP
26 1 3 never RB
27 1 4 be VB
28 1 5 ashamed JJ
29 1 6 of IN
30 1 7 our PRP$
31 1 8 tears NNS
32 1 9 . .