Kennt jemand ein R-Paket oder hat er eine Möglichkeit, solche Phrasennetze zu erstellen?
Kennt jemand ein R-Paket oder hat er eine Möglichkeit, solche Phrasennetze zu erstellen?
Antworten:
Ich hoffe das macht Sinn. Ich habe es irgendwie zusammengeschmissen, aber es scheint, dass es das ist, was du tun willst. Ich habe mir einen Test über den obigen Kopfgeld-Hyperlink geholt. Es zeigt die Wörter, die nach einem bestimmten Wort kommen, sowie das Verhältnis der Zeiten, zu denen diese Ergebnisse aufgetreten sind. Dies wird nichts für die Visualisierung tun, obwohl ich sicher bin, dass es nicht unmöglich wäre, sie zu erstellen. Es sollte den größten Teil der Hintergrundmathematik erledigen.
library(tau)
#this will load the string
x <- tokenize("Questions must be at least 2 days old to be eligible for a bounty. There can only be 1 active bounty per question at any given time. Users must have at least 75 reputation to offer a bounty, and may only have a maximum of 3 active bounties at any given time. The bounty period lasts 7 days. Bounties must have a minimum duration of at least 1 day. After the bounty ends, there is a grace period of 24 hours to manually award the bounty. If you do not award your bounty within 7 days (plus the grace period), the highest voted answer created after the bounty started with at least 2 upvotes will be awarded half the bounty amount. If there's no answer meeting that criteria, the bounty is not awarded to anyone. If the bounty was started by the question owner, and the question owner accepts an answer during the bounty period, and the bounty expires without an explicit award – we assume the bounty owner liked the answer they accepted and award it the full bounty amount at the time of bounty expiration. In any case, you will always give up the amount of reputation specified in the bounty, so if you start a bounty, be sure to follow up and award your bounty to the best answer! As an additional bonus, bounty awards are immune to the daily reputation cap and community wiki mode.")
#the number of tokens in the string
n <- length(x)
list <- NULL
count <- 1
#this will remove spaces, list is new string with no spaces
for (i in 1:n) {
if (x[i] != " ") {
list[count] <- x[i]
count <- count + 1
}
}
#the unique words in the string
y <- unique(list)
#number of tokens in the string
n <- length(list)
#number of distinct tokens
m <- length(y)
#assign tokens to values
ind <- NULL
val <- NULL
#make vector of numbers in place of tokens
for (i in 1:m) {
ind[i] <- i
for (j in 1:n) {
if (y[i] == list[j]) {
val[j] = i
}
}
}
d <- array(0, c(m, m))
#this finds the number of count of the word after the current word
for (i in 1:(n-1)) {
d[val[i], val[i+1]] <- d[val[i], val[i+1]] + 1
}
#pick a word
word <- 4
#show the word
y[word]
#[1] "at"
#the words that follow
y[which(d[word,] > 0)]
#[1] "least" "any" "the"
#the prob of words that follow
d[word,which(d[word,]>0)]/sum(d[word,])
#[1] 0.5714286 0.2857143 0.1428571
Sie können Phrasennetze mit Many Eyes erstellen , was eine Art "offizielle" Heimat dieser Visualisierungstechnik ist. Dort können Sie Ihre Daten hochladen (wahrscheinlich ein Textkörper), "Phrase Net" als Visualisierungstechnik auswählen und das bekommen, wonach Sie suchen.
Tatsächlich stammt Ihre Illustration von der Phrase Net- Seite auf Many Eyes .
Mit dem Paket können Sie igraph
ein Diagramm erstellen und zeichnen, wobei Sie alle Aspekte steuern können. Die Pakete graph
und Rgraphviz
arbeiten zusammen, um Diagramme zu definieren und zu zeichnen. Beide Optionen bieten viel Kontrolle. ( graphviz
ist auch ein eigenständiges Paket, in dem Sie alle Arten von Software verwenden können, um das Diagramm zu generieren und graphviz
anzeigen zu lassen.)
Natürlich müssen Sie Ihre Daten in ein Diagramm umwandeln, wie es @darrelkj vorschlägt.