forked from cezary-rosinski/Institute-of-Literary-Research
-
Notifications
You must be signed in to change notification settings - Fork 0
/
literary_prizes_article.Rmd
306 lines (255 loc) · 13.9 KB
/
literary_prizes_article.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
---
title: "R Notebook"
output: html_notebook
---
```{r}
options(java.parameters = "-Xmx32000m")
options(scipen = 999)
pacman::p_load(googlesheets,zoo,openxlsx,stringr,splitstackshape,plyr,dplyr,sqldf,stringdist,fuzzyjoin,data.table,svMisc,tidyverse,RJDBC,xlsx,magrittr,jsonlite)
#połączenie z bazą PBL
#jdbcDriver =JDBC("oracle.jdbc.OracleDriver",classPath="C:/Users/cezar/Documents/R/ojdbc6.jar")
#jdbcDriver =JDBC("oracle.jdbc.OracleDriver",classPath="E:/Cezary/Documents/ojdbc6.jar")
jdbcDriver =JDBC("oracle.jdbc.OracleDriver",classPath="C:/Users/Cezary/Downloads/ojdbc6.jar")
PBL <- dbConnect(jdbcDriver, "jdbc:oracle:thin:@//pbl.ibl.poznan.pl:1521/xe", "IBL_SELECT", "CR333444")
#pobranie listy konkursów i nagród z działów Konkursy (życie literackie) i Nagrody (życie literackie) z osobami z indeksu
pbl_ko_na_osoby <- RJDBC::dbGetQuery(PBL,
"select z.za_zapis_id, dz.dz_dzial_id, dz.dz_nazwa, z.za_ro_rok, z.za_tytul, z.za_organizator, z.za_adnotacje, z.za_opis_imprezy,
io.odi_nazwisko, io.odi_imie
from pbl_dzialy dz
join IBL_OWNER.pbl_zapisy z on z.za_dz_dzial1_id=dz.dz_dzial_id
join IBL_OWNER.pbl_osoby_do_indeksu io on io.odi_za_zapis_id=z.za_zapis_id
where dz_nazwa in ('Konkursy (życie literackie)', 'Nagrody (życie literackie)')
and z.za_type = 'IR'")
pbl_kona <- pbl_ko_na_osoby %>%
select(-ODI_NAZWISKO, -ODI_IMIE) %>%
filter(ZA_RO_ROK>1989&ZA_RO_ROK<2004) %>%
arrange(ZA_TYTUL) %>%
unique()
write.csv2(pbl_kona, "C:/Users/cezar/Desktop/ko_na.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
#listy osób dla lat 93-98
osoby_kona <- pbl_ko_na %>%
select(ZA_RO_ROK, ODI_NAZWISKO, ODI_IMIE) %>%
unique() %>%
filter(ZA_RO_ROK>1992&ZA_RO_ROK<1999) %>%
arrange(ZA_RO_ROK,ODI_NAZWISKO,ODI_IMIE)
#pierwsze zwycięstwo
debiut_kona <- ddply(osoby_kona, .(ODI_NAZWISKO, ODI_IMIE), summarize, ZA_RO_ROK = paste(ZA_RO_ROK, collapse="|"))
debiut_kona <- debiut_kona %>%
mutate(ZA_RO_ROK = str_replace(ZA_RO_ROK, "(^\\d{4})(.*)","\\1")) %>%
arrange(ZA_RO_ROK,ODI_NAZWISKO,ODI_IMIE)
#API VIAF
library(httr)
library(jsonlite)
library(lubridate)
options(stringsAsFactors = FALSE)
url <- "http://www.viaf.org"
path <- "eurlex/directory_code"
tt_GET <- function(path, ...){
if (is.null(path))
stop("Nothing to parse")
uri <- "http://www.viaf.org/"
# call api
req <- httr::GET(uri, path = path, ...)
# check for http status
tt_check(req)
req
}
tt_check <- function(req) {
if (req$status_code < 400)
return(invisible())
stop("HTTP failure: ", req$status_code, "\n", call. = FALSE)
}
tt_parse_js <- function(req) {
text <- httr::content(req, as = "text")
if (identical(text, ""))
stop("Not output to parse", call. = FALSE)
jsonlite::fromJSON(text)
}
viaf_get <- function(viaf = NULL) {
if(is.null(viaf))
stop("No viaf provided")
tt_GET(path = paste0("viaf/", viaf), httr::add_headers(Accept = "application/json+links")) %>%
tt_parse_js()
}
viaf_suggest <- function(query = NULL){
if(is.null(query))
stop ("No query provided")
tt_GET(path = "viaf/AutoSuggest", query = list(query = query)) %>%
tt_parse_js()
}
viaf_get("102333412")
test <- viaf_suggest("cezary rosiński")
test <- data.frame(test)
library(viafr)
library(dplyr)
library(purrr)
viaf_get(c("64013650", "102333412"))
viaf_get("308780980")
ludzie <- data.frame(osoba = c("anna gnot", "gabriela romanova", "gabi romanowa", "maciej maryl", "piotr wciślik", "cezary rosiński", "beata koper", "tomasz umerle", "vojtech malinek", "jacek biesiada", "tomasz mizerkiewicz"))
x <- 1:length(ludzie$osoba)
test3 <- data.frame(term = as.character(),displayForm = as.character(), nametype = as.character(), viafid = as.integer(), stringsAsFactors = FALSE)
names(test2)
for (i in x) {
#progress(match(i,x), max.value = length(x))
test <- viaf_suggest(ludzie$osoba[i])
tryCatch({
test2 <- test$result %>%
select(term,displayForm,nametype,viafid)
}, error=function(e){
test2 <<- data.frame(term = ludzie$osoba[i],displayForm = NA, nametype = NA, viafid =NA, stringsAsFactors = FALSE)
})
test3 <- rbind(test3,test2)
}
}
```
---
title: "R Notebook"
output: html_notebook
---
```{r}
options(scipen = 999)
options(java.parameters = "-Xmx8192m")
library(googlesheets)
library(zoo)
library(openxlsx)
library(stringr)
library(splitstackshape)
library(plyr)
library(dplyr)
library(sqldf)
library(stringdist)
library(fuzzyjoin)
library(data.table)
library(svMisc)
library(tidyverse)
library(RJDBC)
library(xlsx)
#połączenie z bazą PBL
jdbcDriver =JDBC("oracle.jdbc.OracleDriver",classPath="C:/Users/cezar/Documents/R/ojdbc6.jar")
#jdbcDriver =JDBC("oracle.jdbc.OracleDriver",classPath="E:/Cezary/Documents/ojdbc6.jar")
PBL <- dbConnect(jdbcDriver, "jdbc:oracle:thin:@//pbl.ibl.poznan.pl:1521/xe", "IBL_SELECT", "CR333444")
#pobranie tabeli z konkursami
konkursy_nagrody_tabela <- gs_read(gs_title("konkursy_nagrody_czy_artystyczne"), ws = "konkursy_nagrody_czy_artystyczn")
konkursy_nagrody_tabela <- konkursy_nagrody_tabela %>%
select(ZA_ZAPIS_ID,ZA_TYTUL,ZA_RO_ROK,typ,decyzja = decyzja_dotyczaca_niepiszacych_laureatow, ZA_ADNOTACJE) %>%
filter(grepl("tak",decyzja)) %>%
filter(ZA_RO_ROK >1993&ZA_RO_ROK<2000)
#pobranie indeksu dla konkursów i nagród
indeks_kn_all <- dbGetQuery(PBL,
"select z.za_zapis_id, z.za_ro_rok, z.za_tytul, z.za_adnotacje, io.odi_nazwisko, io.odi_imie
from pbl_zapisy z
join pbl_osoby_do_indeksu io on io.odi_za_zapis_id=z.za_zapis_id")
indeks_kn <- merge(x = konkursy_nagrody_tabela, y = indeks_kn_all, by = "ZA_ZAPIS_ID", all.x = TRUE)
indeks_kn <- indeks_kn %>%
select(ZA_ZAPIS_ID, ZA_TYTUL = ZA_TYTUL.x, ZA_RO_ROK=ZA_RO_ROK.x, typ, decyzja, ZA_ADNOTACJE=ZA_ADNOTACJE.x, ODI_NAZWISKO, ODI_IMIE)
osoby_w_kn <- indeks_kn %>%
select(ODI_NAZWISKO,ODI_IMIE,ZA_ZAPIS_ID) %>%
group_by(ODI_NAZWISKO,ODI_IMIE) %>%
mutate(ZA_ZAPIS_ID = paste(ZA_ZAPIS_ID,collapse = ",")) %>%
unique()
#pobranie twórców z PBLu
tworcy <- dbGetQuery(PBL,
"select distinct tw.tw_tworca_id, tw.tw_nazwisko, tw.tw_imie, tw.tw_rok_urodzin
from IBL_OWNER.pbl_tworcy tw
join IBL_OWNER.pbl_dzialy dz on dz.dz_dzial_id=tw.tw_dz_dzial_id
join IBL_OWNER.pbl_zapisy_tworcy zt on zt.zatw_tw_tworca_id=tw.tw_tworca_id
join IBL_OWNER.pbl_zapisy z on zt.zatw_za_zapis_id=z.za_zapis_id
where dz.dz_dzial_id = 148
and z.za_rz_rodzaj1_id in (1, 61, 87)
order by tw.tw_tworca_id")
#pobranie indeksu osobowego z antologii
indeks_antologie <- dbGetQuery(PBL,
"select z.za_zapis_id, z.za_ro_rok, z.za_tytul, z.za_adnotacje, io.odi_nazwisko, io.odi_imie
from pbl_zapisy z
join pbl_osoby_do_indeksu io on io.odi_za_zapis_id=z.za_zapis_id
where z.za_dz_dzial1_id = 146")
osoby_antologie <- indeks_antologie %>%
select(ODI_NAZWISKO,ODI_IMIE,ZA_ZAPIS_ID) %>%
group_by(ODI_NAZWISKO,ODI_IMIE) %>%
mutate(ZA_ZAPIS_ID = paste(ZA_ZAPIS_ID,collapse = ",")) %>%
unique()
#zderzenie osób z konkursów i nagród z twórcami
osoby_w_kn <- osoby_w_kn %>%
mutate(osoba = paste(ODI_NAZWISKO,ODI_IMIE, sep = " ")) %>%
mutate(prosta = str_to_lower(str_replace_all(osoba, "\\W", "")))
osoby_w_kn$ID <- seq.int(nrow(osoby_w_kn))
tworcy <- tworcy %>%
mutate(osoba = paste(TW_NAZWISKO, TW_IMIE, sep = " ")) %>%
mutate(prosta = str_to_lower(str_replace_all(osoba, "\\W", "")))
x <- 1:length(osoby_w_kn$ZA_ZAPIS_ID)
hadron_tworcy <- data.frame(laureat_id = as.character(), ODI_NAZWISKO = as.character(), ODI_IMIE = as.character(), TW_TWORCA_ID = as.character(), TW_NAZWISKO = as.character(), TW_IMIE = as.character(), V1 = as.character(), stringsAsFactors=FALSE)
for (i in x) {
progress(i, max.value = length(x))
lkj <- as.matrix(stringdistmatrix(a=osoby_w_kn$prosta[i],b=tworcy$prosta, method = "jw"))
lkj <- data.frame(V1 = as.vector(lkj))
kjh <- data.frame(laureat_id = rep(osoby_w_kn$ID[i], length(tworcy$prosta)), ODI_NAZWISKO = rep(osoby_w_kn$ODI_NAZWISKO[i], length(tworcy$prosta)), bn_imie = rep(osoby_w_kn$ODI_IMIE[i], length(tworcy$prosta)), n_aut = rep(osoby_w_kn$prosta[i], length(tworcy$prosta)), tworcy, lkj)
kjh <- kjh[order(kjh$V1),]
kjh <- kjh %>%
top_n(-5,V1) %>%
select(-n_aut,-osoba,-prosta)
hadron_tworcy <- rbind(hadron_tworcy,kjh)
}
write.csv2(hadron_tworcy, "C:/Users/cezar/Desktop/hadron_tworcy.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
write.csv2(indeks_kn, "C:/Users/cezar/Desktop/indeks_kn.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
#zderzenie osób z konkursów i nagród z indeksem z antologii
osoby_antologie <- osoby_antologie %>%
mutate(osoba = paste(ODI_NAZWISKO, ODI_IMIE, sep = " ")) %>%
mutate(prosta = str_to_lower(str_replace_all(osoba, "\\W", "")))
osoby_antologie$IDant <- seq.int(nrow(osoby_antologie))
x <- 1:length(osoby_w_kn$ZA_ZAPIS_ID)
hadron_antologie <- data.frame(laureat_id = as.character(), ODI_NAZWISKO = as.character(), ODI_IMIE = as.character(), antID = as.character(), ant_NAZWISKO = as.character(), ant_IMIE = as.character(), V1 = as.character(), stringsAsFactors=FALSE)
for (i in x) {
progress(i, max.value = length(x))
lkj <- as.matrix(stringdistmatrix(a=osoby_w_kn$prosta[i],b=osoby_antologie$prosta, method = "jw"))
lkj <- data.frame(V1 = as.vector(lkj))
kjh <- data.frame(laureat_id = rep(osoby_w_kn$ID[i], length(osoby_antologie$prosta)), ODI_NAZWISKO = rep(osoby_w_kn$ODI_NAZWISKO[i], length(osoby_antologie$prosta)), bn_imie = rep(osoby_w_kn$ODI_IMIE[i], length(osoby_antologie$prosta)), n_aut = rep(osoby_w_kn$prosta[i], length(osoby_antologie$prosta)), osoby_antologie, lkj)
kjh <- kjh[order(kjh$V1),]
kjh <- kjh %>%
top_n(-5,V1) %>%
select(-n_aut,-osoba,-prosta,-ID)
hadron_antologie <- rbind(hadron_antologie,kjh)
}
write.csv2(hadron_antologie, "C:/Users/cezar/Desktop/hadron_antologie.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
write.csv2(indeks_kn, "C:/Users/cezar/Desktop/indeks_kn.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
write.csv2(indeks_antologie, "C:/Users/cezar/Desktop/indeks_antologie.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
```
```{r budowa kartoteki konkursow i nagrod}
#konkursy wraz z laureatami z indeksu
indeks_kn <- gs_read(gs_title("konkursy_nagrody_czy_artystyczne"), ws = "konkursy_nagrody_czy_artystyczn") %>%
left_join(.,dbGetQuery(PBL,
"select z.za_zapis_id, io.odi_nazwisko, io.odi_imie
from pbl_zapisy z
join pbl_osoby_do_indeksu io on io.odi_za_zapis_id=z.za_zapis_id"),by = "ZA_ZAPIS_ID") %>%
select(ZA_ZAPIS_ID, ZA_TYTUL, ZA_RO_ROK, typ, decyzja = decyzja_dotyczaca_niepiszacych_laureatow, ZA_ADNOTACJE, ODI_NAZWISKO, ODI_IMIE) %>%
mutate(osoba_out = NA)
write.csv2(indeks_kn, "C:/Users/Cezary/Desktop/indeks_kn.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
#pobranie tabeli z konkursami
konkursy_nagrody_tabela <- gs_read(gs_title("konkursy_nagrody_czy_artystyczne"), ws = "konkursy_nagrody_czy_artystyczn") %>%
select(ZA_ZAPIS_ID,ZA_TYTUL,ZA_RO_ROK,typ,decyzja = decyzja_dotyczaca_niepiszacych_laureatow, ZA_ADNOTACJE, ZA_ORGANIZATOR) %>%
select(1:3,6:7) %>%
mutate(name_simple = str_replace_all(str_to_lower(ZA_TYTUL), "\\W", ""),
for_unification = str_replace(name_simple,"(.*)(\\d{4}.*?$)","\\1")) %>%
arrange(for_unification,ZA_RO_ROK)
write.csv2(konkursy_nagrody_tabela, "C:/Users/Cezary/Desktop/kartoteka_konkursów_i_nagród.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
#lista organizatorów
organizers <- gs_read(gs_title("konkursy_nagrody_czy_artystyczne"), ws = "konkursy_nagrody_czy_artystyczn") %>%
select(ZA_ZAPIS_ID,ZA_TYTUL,ZA_RO_ROK,ZA_ORGANIZATOR) %>%
left_join(.,dbGetQuery(PBL,
"select hpz.hz_za_zapis_id \"ZA_ZAPIS_ID\",hp.hp_nazwa,khp.kh_nazwa
from IBL_OWNER.pbl_hasla_przekrojowe hp
join IBL_OWNER.pbl_hasla_przekr_zapisow hpz on hpz.hz_hp_haslo_id=hp.hp_haslo_id
join IBL_OWNER.pbl_klucze_hasla_przekr khp on khp.kh_hp_haslo_id=hp.hp_haslo_id
join IBL_OWNER.pbl_hasla_zapisow_klucze hzk on hzk.hzkh_hz_hp_haslo_id=hp.hp_haslo_id and hzk.hzkh_kh_klucz_id=khp.kh_klucz_id and hzk.hzkh_hz_za_zapis_id=hpz.hz_za_zapis_id"), by = "ZA_ZAPIS_ID") %>%
mutate(czy_wchodzi = grepl("Biblia|Czasopiśmiennictwo obce|Czasopiśmiennictwo polskie historia|Dydaktyka literatury|Filmy polskie|Filmy zagraniczne|Filologie|Genologia|Historia literatury polskiej|Konkursy|Kontakty kulturalne z zagranicą|Literatura a inne sztuki|Literatura anonimowa i ulotna|Literatura ludowa|Literatura regionalna|Literatura współczesna 1945-1989|Literatura współczesna po 1989|Literatury obce|Miejscowości w Polsce|Nagrody polskie|Nagrody zagraniczne|Odznaczenia|Plebiscyty|Przekłady z literatury polskiej na języki obce|Radio|Realizacje obce polskich utworów literackich (filmowe, teatralne, telewizyjne, radiowe)|Realizacje polskie obcych utworów literackich|Słowniki i encyklopedie|Teatr obcy|Telewizja|Tematy, motywy|Wydawnictwa obce|Wystawy|Zjazdy, festiwale, sesje w Polsce|Zjazdy, festiwale, sesje za granicą",HP_NAZWA),
HP_NAZWA = ifelse(czy_wchodzi==TRUE,NA,as.character(HP_NAZWA)),
KH_NAZWA = ifelse(czy_wchodzi==TRUE,NA,as.character(KH_NAZWA))) %>%
select(-czy_wchodzi,-HP_NAZWA) %>%
unique() %>%
arrange(ZA_ZAPIS_ID,KH_NAZWA) %>%
group_by(ZA_ZAPIS_ID,ZA_TYTUL,ZA_RO_ROK,ZA_ORGANIZATOR) %>%
mutate(KH_NAZWA = paste(KH_NAZWA,collapse = "|")) %>%
ungroup() %>%
unique() %>%
mutate(KH_NAZWA = str_remove_all(KH_NAZWA,"\\|NA|NA"))
write.csv2(organizers, "C:/Users/Cezary/Desktop/organizatorzy_k&n.csv", row.names = F, na = '', fileEncoding = 'Windows-1250')
```