library(udpipe)
library(dplyr)
library(igraph)
library(ggraph)
library(tidyverse)
library(ggrepel)
caesar <- udpipe_read_conllu("https://github.com/locusclassicus/text_analysis_2024/raw/main/files/bg_latinpipe.conllu")
caesar_subset <- caesar |>
filter(upos == "NOUN")
cooc <- cooccurrence(caesar_subset, term = "lemma",
group = c("doc_id", "sentence_id")) |>
as_tibble() |>
filter(cooc > 40)
g <- graph_from_data_frame(d = cooc, directed = FALSE)
ggraph(g, layout = "fr") +
geom_edge_link(aes(width = cooc, alpha = cooc),
color = "#5D6D7E",
edge_width = 1.) +
geom_node_point(aes(size = degree(g)),
color = "#E67E22",
alpha = 0.7) +
geom_node_text(aes(label = name),
point.padding = unit(0.2, "lines"),
repel = TRUE,
size = 5,
fontface = "bold") +
scale_edge_width(range = c(0.2, 2), name = "Частота") +
scale_size_area(max_size = 10, name = "Degree") +
theme_void() +
labs(title = "Граф совместной встречаемости существительных") +
theme(legend.position = "right",
plot.title = element_text(hjust = 0.5, face = "bold"))

| miles |
воин |
|
| hostis |
враг |
|
| castra |
лагерь, укрепление |
|
| dies |
день |
|
| copia |
запас, изобилие |
В ед. числе |
| copiae |
войско |
Во мн. числе |
| locus |
место |
|
Связь res и causa - возможно, из фразы “causa rei”
LS0tCnRpdGxlOiAiQ2Flc2FyIG5vdW4gY29vY2N1cnJlbmNlIgphdXRob3I6ICJWb3JvbmNoaWtoaW4gRWdvciIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodWRwaXBlKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KGlncmFwaCkKbGlicmFyeShnZ3JhcGgpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdncmVwZWwpCgpjYWVzYXIgPC0gdWRwaXBlX3JlYWRfY29ubGx1KCJodHRwczovL2dpdGh1Yi5jb20vbG9jdXNjbGFzc2ljdXMvdGV4dF9hbmFseXNpc18yMDI0L3Jhdy9tYWluL2ZpbGVzL2JnX2xhdGlucGlwZS5jb25sbHUiKQoKY2Flc2FyX3N1YnNldCA8LSAgY2Flc2FyIHw+IAogIGZpbHRlcih1cG9zID09ICJOT1VOIikKCgpjb29jIDwtIGNvb2NjdXJyZW5jZShjYWVzYXJfc3Vic2V0LCB0ZXJtID0gImxlbW1hIiwgCiAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gYygiZG9jX2lkIiwgInNlbnRlbmNlX2lkIikpIHw+CiAgYXNfdGliYmxlKCkgfD4gCiAgZmlsdGVyKGNvb2MgPiA0MCkKCmcgPC0gZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGQgPSBjb29jLCBkaXJlY3RlZCA9IEZBTFNFKQpnZ3JhcGgoZywgbGF5b3V0ID0gImZyIikgKwogIGdlb21fZWRnZV9saW5rKGFlcyh3aWR0aCA9IGNvb2MsIGFscGhhID0gY29vYyksIAogICAgICAgICAgICAgICAgIGNvbG9yID0gIiM1RDZEN0UiLCAKICAgICAgICAgICAgICAgICBlZGdlX3dpZHRoID0gMS4pICsKICBnZW9tX25vZGVfcG9pbnQoYWVzKHNpemUgPSBkZWdyZWUoZykpLCAKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiI0U2N0UyMiIsIAogICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNykgKwogIGdlb21fbm9kZV90ZXh0KGFlcyhsYWJlbCA9IG5hbWUpLCAKICAgICAgICAgICAgICAgICBwb2ludC5wYWRkaW5nID0gdW5pdCgwLjIsICJsaW5lcyIpLCAKICAgICAgICAgICAgICAgICByZXBlbCA9IFRSVUUsCiAgICAgICAgICAgICAgICAgc2l6ZSA9IDUsIAogICAgICAgICAgICAgICAgIGZvbnRmYWNlID0gImJvbGQiKSArCiAgc2NhbGVfZWRnZV93aWR0aChyYW5nZSA9IGMoMC4yLCAyKSwgbmFtZSA9ICLQp9Cw0YHRgtC+0YLQsCIpICsKICBzY2FsZV9zaXplX2FyZWEobWF4X3NpemUgPSAxMCwgbmFtZSA9ICJEZWdyZWUiKSArCiAgdGhlbWVfdm9pZCgpICsKICBsYWJzKHRpdGxlID0gItCT0YDQsNGEINGB0L7QstC80LXRgdGC0L3QvtC5INCy0YHRgtGA0LXRh9Cw0LXQvNC+0YHRgtC4INGB0YPRidC10YHRgtCy0LjRgtC10LvRjNC90YvRhSIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLAogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSwgZmFjZSA9ICJib2xkIikpCmBgYAoKfCDQm9Cw0YLQuNC90YHQutC+0LUg0YHQu9C+0LLQviB8INCf0LXRgNC10LLQvtC0ICAgICAgICAgICAgfCDQn9GA0LjQvNC10YfQsNC90LjQtSAgIHwKfDotLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAp8ICoqbWlsZXMqKiAgICAgICB8INCy0L7QuNC9ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfAp8ICoqaG9zdGlzKiogICAgICB8INCy0YDQsNCzICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfAp8ICoqY2FzdHJhKiogICAgICB8INC70LDQs9C10YDRjCwg0YPQutGA0LXQv9C70LXQvdC40LUgfCAgICAgICAgICAgICAgfAp8ICoqZGllcyoqICAgICAgICB8INC00LXQvdGMICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfAp8ICoqY29waWEqKiAgICAgICB8INC30LDQv9Cw0YEsINC40LfQvtCx0LjQu9C40LUgICAgfCDQkiDQtdC0LiDRh9C40YHQu9C1ICB8CnwgKipjb3BpYWUqKiAgICAgIHwg0LLQvtC50YHQutC+ICAgICAgICAgICAgIHwg0JLQviDQvNC9LiDRh9C40YHQu9C1IHwKfCAqKmxvY3VzKiogICAgICAgfCDQvNC10YHRgtC+ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8CgrQodCy0Y/Qt9GMIHJlcyDQuCBjYXVzYSAtINCy0L7Qt9C80L7QttC90L4sINC40Lcg0YTRgNCw0LfRiyAiY2F1c2EgcmVpIgoK