2016-11-02 2 views
-1

Ich muss mehrere Sätze in einem Satz mit R und passen Sie es in Spalten neben ihm. Beispiel:Phrase Match in einem Satz mit R

sentence <- c("My CPU is working but keyboard is not working", "unable 
        access printer", "unable access printer and keyboard is not working") 
    phrase <- c("unable access printer", "keyboard is not working") 

Ich möchte meine Ausgabe in folgenden Datenrahmenformat:

 sentence            phrase1     phrase2 
    My CPU is working but keyboard is not working   keyboard is not working  NA 
    unable access printer          NA      NA 
    unable access printer and keyboard is not working  unable access printer  keyboard is not working 

Anfrage Sie mit dem Ansatz oder R-Code zu führen, mir zu gefallen. Vielen Dank!

+0

Ja, ich habe versucht, aber immer noch nicht die Ausgabe im gewünschten Format. Es wird sehr hilfreich sein, wenn Sie mich mit dem Code führen können. – Kiwi

+0

sollten Sie den Code, den Sie in Ihrer Frage versucht haben, posten. –

+1

Vielleicht nur 'res <- sapply (Satz, grepl, x = Satz); rownames (res) <- Satz; res'? Ich denke, dass dieses Format für alles nützlich ist, was Sie mit dem Ergebnis vorhaben. – lukeA

Antwort

1
library(quanteda) 
library(foreach) 
library(data.table) 

corp = corpus(sentence) 

find.phrases = foreach(i = 1:length(phrase)) %do% { 
    kwic(corp, phrase[i]) 
} 

find.df = rbindlist(find.phrases)