Install the R package.
install.packages("udpipe")
Get your language model and start annotating.
library(udpipe)
udmodel <- udpipe_download_model(language = "dutch")
udmodel <- udpipe_load_model(file = udmodel$file_model)
x <- udpipe_annotate(udmodel,
x = "Ik ging op reis en ik nam mee: mijn laptop, mijn zonnebril en goed humeur.")
x <- as.data.frame(x, detailed = TRUE)
Or just do as follows.
library(udpipe)
x <- udpipe(x = "Ik ging op reis en ik nam mee: mijn laptop, mijn zonnebril en goed humeur.",
object = "dutch")
The annotation returns paragraphs, sentences, tokens, the location of the token in the original text, morphology elements like the lemma, the universal part of speech tag and the treebank-specific parts of speech tag, morphosyntactic features and returns as well the dependency relationship. More information at https://universaldependencies.org/guidelines.html
str(x)
'data.frame': 18 obs. of 17 variables:
$ doc_id : chr "doc1" "doc1" "doc1" "doc1" ...
$ paragraph_id : int 1 1 1 1 1 1 1 1 1 1 ...
$ sentence_id : int 1 1 1 1 1 1 1 1 1 2 ...
$ sentence : chr "Ik ging op reis en ik nam mee:" "Ik ging op reis en ik nam mee:" "Ik ging op reis en ik nam mee:" "Ik ging op reis en ik nam mee:" ...
$ start : int 1 4 9 12 17 20 23 27 30 32 ...
$ end : int 2 7 10 15 18 21 25 29 30 35 ...
$ term_id : int 1 2 3 4 5 6 7 8 9 10 ...
$ token_id : chr "1" "2" "3" "4" ...
$ token : chr "Ik" "ging" "op" "reis" ...
$ lemma : chr "ik" "gaan" "op" "reis" ...
$ upos : chr "PRON" "VERB" "ADP" "NOUN" ...
$ xpos : chr "VNW|pers|pron|nomin|vol|1|ev" "WW|pv|verl|ev" "VZ|init" "N|soort|ev|basis|zijd|stan" ...
$ feats : chr "Case=Nom|Person=1|PronType=Prs" "Number=Sing|Tense=Past|VerbForm=Fin" NA "Gender=Com|Number=Sing" ...
$ head_token_id: chr "2" "0" "4" "2" ...
$ dep_rel : chr "nsubj" "root" "case" "obl" ...
$ deps : chr NA NA NA NA ...
$ misc : chr NA NA NA NA ...
Mark that it is important that the x
argument to udpipe_annotate
is in UTF-8 encoding. You can check the encoding of your text with Encoding('your text')
. You can convert your text to UTF-8, using standard R utilities: as in iconv('your text', from = 'latin1', to = 'UTF-8')
where you replace the from
part with whichever encoding you have your text in, possible your computers default as defined in localeToCharset()
. So annotation would look something like this if your text is not already in UTF-8 encoding:
udpipe_annotate(udmodel, x = iconv('your text', to = 'UTF-8'))
if your text is in the encoding of the current locale of your computer.udpipe_annotate(udmodel, x = iconv('your text', from = 'latin1', to = 'UTF-8'))
if your text is in latin1 encoding.udpipe_annotate(udmodel, x = iconv('your text', from = 'CP949', to = 'UTF-8'))
if your text is in CP949 encoding.