Heutiger Raketenteststart - Stufe 2d
{ tja, es ist halt nicht ganz nach Plan gelaufen, die Stufenzündungen sollten eigentlich alle an einem Tag stattfinden ;-) }
Installation RStudio in Ubuntu 19.04
cd ~/Downloads wget https://download1.rstudio.org/desktop/bionic/amd64/rstudio-1.2.1335-amd64.deb sudo apt-get install ./rstudio-1.2.1335-amd64.deb
https://askubuntu.com/questions/1138184/rstudio-in-ubuntu-19-04
Dependency Parsing mit udpipe in R
bnosac :: open analytical helpers - dependency parsing with udpipe
dependency parsing with udpipe | R-bloggers
Skript für deutsche Sprache
# depency-parsing-udpipe-r
# http://www.bnosac.be/index.php/blog/93-dependency-parsing-with-udpipe
# https://www.r-bloggers.com/dependency-parsing-with-udpipe/
# Ggf. müssen die Pakete
# udpipe, igraph, ggraph, ggplot2
# vorher installiert werden
# udpipen eines Satzes in deutscher Sprache
library(udpipe)
x <- udpipe("Wir bezahlen für etwas, das wir nicht verursacht haben.", "german")
x
# Visualisierung
library(igraph)
library(ggraph)
library(ggplot2)
plot_annotation <- function(x, size = 3){
stopifnot(is.data.frame(x) & all(c("sentence_id", "token_id", "head_token_id", "dep_rel",
"token_id", "token", "lemma", "upos", "xpos", "feats") %in% colnames(x)))
x <- x[!is.na(x$head_token_id), ]
x <- x[x$sentence_id %in% min(x$sentence_id), ]
edges <- x[x$head_token_id != 0, c("token_id", "head_token_id", "dep_rel")]
edges$label <- edges$dep_rel
g <- graph_from_data_frame(edges,
vertices = x[, c("token_id", "token", "lemma", "upos", "xpos", "feats")],
directed = TRUE)
ggraph(g, layout = "linear") +
geom_edge_arc(ggplot2::aes(label = dep_rel, vjust = -0.20),
arrow = grid::arrow(length = unit(4, 'mm'), ends = "last", type = "closed"),
end_cap = ggraph::label_rect("wordswordswords"),
label_colour = "red", check_overlap = TRUE, label_size = size) +
geom_node_label(ggplot2::aes(label = token), col = "darkgreen", size = size, fontface = "bold") +
geom_node_text(ggplot2::aes(label = upos), nudge_y = -0.35, size = size) +
theme_graph(base_family = "Arial Narrow") +
labs(title = "udpipe ausstoss", subtitle = "tokenisierung, sprachteilmarkerung & abhängigkeitsverhältnisse")
}
## Plotten
plot_annotation(x, size = 4)
# Ein weiterer Satz in Visualisierung
x <- udpipe("Es ist die Schönheit deiner Seele, die ich sehe.", "german")
plot_annotation(x, size = 4)
# Noch ein Satz, diesmal extra lang
x <- udpipe("Die Bundesregierung tut weiterhin so, als sei die Klimakrise irgendwie ein abstraktes Problem, das uns doch eigentlich gar nicht richtig betrifft.", "german")
plot_annotation(x, size = 2)
Output
Skript für englische Sprache (entspricht den Originalcodeseiten von: siehe oben!)
# depency-parsing-udpipe-r
# http://www.bnosac.be/index.php/blog/93-dependency-parsing-with-udpipe
# https://www.r-bloggers.com/dependency-parsing-with-udpipe/
# Ggf. müssen die Pakete
# udpipe, igraph, ggraph, ggplot2
# vorher installiert werden
# udpipen eines Satzes in englischer Sprache
library(udpipe)
x <- udpipe("His speech about marshmallows in New York is utter bullshit", "english")
x
# Visualisierung
library(igraph)
library(ggraph)
library(ggplot2)
plot_annotation <- function(x, size = 3){
stopifnot(is.data.frame(x) & all(c("sentence_id", "token_id", "head_token_id", "dep_rel",
"token_id", "token", "lemma", "upos", "xpos", "feats") %in% colnames(x)))
x <- x[!is.na(x$head_token_id), ]
x <- x[x$sentence_id %in% min(x$sentence_id), ]
edges <- x[x$head_token_id != 0, c("token_id", "head_token_id", "dep_rel")]
edges$label <- edges$dep_rel
g <- graph_from_data_frame(edges,
vertices = x[, c("token_id", "token", "lemma", "upos", "xpos", "feats")],
directed = TRUE)
ggraph(g, layout = "linear") +
geom_edge_arc(ggplot2::aes(label = dep_rel, vjust = -0.20),
arrow = grid::arrow(length = unit(4, 'mm'), ends = "last", type = "closed"),
end_cap = ggraph::label_rect("wordswordswords"),
label_colour = "red", check_overlap = TRUE, label_size = size) +
geom_node_label(ggplot2::aes(label = token), col = "darkgreen", size = size, fontface = "bold") +
geom_node_text(ggplot2::aes(label = upos), nudge_y = -0.35, size = size) +
theme_graph(base_family = "Arial Narrow") +
labs(title = "udpipe output", subtitle = "tokenisation, parts of speech tagging & dependency relations")
}
## Plotten
plot_annotation(x, size = 4)
# Ein weiterer Satz in Visualisierung
x <- udpipe("The economy is weak but the outlook is bright", "english")
plot_annotation(x, size = 4)
# Noch ein Satz, diesmal extra lang
x <- udpipe("Hope this has triggered beginning users of natural language processing that there is a myriad of NLP options beyond mere frequency based word counting.", "english")
plot_annotation(x, size = 2)
Output
Schlussbemerkung
Alles hier & heute omx-hempel-oxo-überprüft: Funzt wie oben angegeben!
Erläuterungen und Erklärungen auf:
bnosac :: open analytical helpers - dependency parsing with udpipe
Ich bin mir nicht sicher, ob damit die Stufe 2 endlich fertigdokumentiert ist.
Wir schau'n mal und lassen und (nett)¹¹ überraschen.
¹¹ Hopefully.
Kommentare
Kommentar veröffentlichen