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

Beliebte Posts aus diesem Blog

·

Es brennt.

Bye, bye Nord Stream 2!