2016-05-25 20 views
1

Wie kann ich die Ausgabe von kwic in einen Korpus zur weiteren Analyse umwandeln? Genauer gesagt möchte ich ein Korpus basierend auf den Wörtern erstellen, die vor und nach einem Schlüsselwort (contextPre, contextPost) kommen, um eine weitere Stimmungsanalyse für sie durchzuführen.Wie transformiere ich eine kwic von Quantea-Paket zu einem Korpus?

+1

Greifen Sie einfach die contextPre, keywork und contextPost, fügen Sie sie zusammen und legen Sie sie in einen Korpus, nein? Bitte werfen Sie einen Blick auf [wie man ein reproduzierbares Beispiel in R macht] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example), und zeigen Sie uns, was Sie tun habe versucht. Für Ihren Fall könnte ein kleines reproduzierbares Beispiel etwas wie "head (kwic (inaugTexts," security ", window = 3)) sein. – Jota

+0

Das hat funktioniert und es war einfach. Vielen Dank! – DebNa

Antwort

0

Einfachster Weg: Erstellen Sie einen Vorkontext- und einen Nachkontextkorpus mit einer Dokumentvariablen (docvar), die den Kontext identifiziert, und führen Sie dann die beiden Korpora mit einer +-Operation zusammen.

require(quanteda) 
mykwic <- kwic(data_corpus_inaugural, "terror") 

# make a corpus with the pre-word context 
mycorpus <- corpus(mykwic$pre) 
docvars(mycorpus, "context") <- "pre" 

# make a corpus with the post-word context 
mycorpus2 <- corpus(mykwic$post) 
docvars(mycorpus2, "context") <- "post" 

# combine the two corpora 
mycorpus <- mycorpus + mycorpus2 

summary(mycorpus) 
# Corpus consisting of 16 documents. 
# 
# Text Types Tokens Sentences context 
# text1  5  5   1  pre 
# text2  4  5   1  pre 
# text3  5  5   1  pre 
# text4  5  5   1  pre 
# text5  5  5   1  pre 
# text6  5  5   1  pre 
# text7  5  5   1  pre 
# text8  5  5   1  pre 
# text11  4  5   1 post 
# text21  5  5   1 post 
# text31  5  5   1 post 
# text41  5  5   1 post 
# text51  5  5   1 post 
# text61  5  5   2 post 
# text71  5  5   2 post 
# text81  5  5   1 post 
# 
# Source: Combination of corpuses mycorpus and mycorpus2 
# Created: Wed May 25 23:35:54 2016 
# Notes: 

am:

Ab v0.9.7-6, quanteda hat ein Verfahren zur Herstellung eines corpus direkt von einem kwic Objekt zu konstruieren. So funktioniert das jetzt:

mykwic <- kwic(data_corpus_inaugural, "southern") 
summary(corpus(mykwic)) 
# Corpus consisting of 28 documents. 
# 
#  Text Types Tokens Sentences   docname position keyword context 
# text1.pre  5  5   1  1797-Adams  1807 southern  pre 
# text2.pre  4  5   1  1825-Adams  2434 southern  pre 
# text3.pre  4  5   1 1861-Lincoln  98 Southern  pre 
# text4.pre  5  5   1 1865-Lincoln  283 southern  pre 
# text5.pre  5  5   1  1877-Hayes  378 Southern  pre 
# text6.pre  5  5   1  1877-Hayes  956 Southern  pre 
# text7.pre  5  5   1  1877-Hayes  1250 Southern  pre 
# text8.pre  5  5   1 1881-Garfield  1007 Southern  pre 
# text9.pre  4  5   1  1909-Taft  4029 Southern  pre 
# text10.pre  5  5   1  1909-Taft  4230 Southern  pre 
# text11.pre  5  5   1  1909-Taft  4350 Southern  pre 
# text12.pre  5  5   1  1909-Taft  4537 Southern  pre 
# text13.pre  5  5   1  1909-Taft  4597 Southern  pre 
# text14.pre  5  5   1 1953-Eisenhower  1226 southern  pre 
# text1.post  5  5   1  1797-Adams  1807 southern post 
# text2.post  5  5   1  1825-Adams  2434 southern post 
# text3.post  5  5   1 1861-Lincoln  98 Southern post 
# text4.post  5  5   2 1865-Lincoln  283 southern post 
# text5.post  5  5   2  1877-Hayes  378 Southern post 
# text6.post  5  5   1  1877-Hayes  956 Southern post 
# text7.post  5  5   1  1877-Hayes  1250 Southern post 
# text8.post  5  5   2 1881-Garfield  1007 Southern post 
# text9.post  5  5   2  1909-Taft  4029 Southern post 
# text10.post  5  5   1  1909-Taft  4230 Southern post 
# text11.post  5  5   1  1909-Taft  4350 Southern post 
# text12.post  5  5   1  1909-Taft  4537 Southern post 
# text13.post  5  5   1  1909-Taft  4597 Southern post 
# text14.post  5  5   1 1953-Eisenhower  1226 southern post 
# 
# Source: Corpus created from kwic(x, keywords = "southern") 
# Created: Thu May 26 09:47:19 2016 
# Notes: