Могу ли я обеспечить согласованность возвращаемых типов данных при обработке data.table? - PullRequest
0 голосов
/ 29 января 2020

Я (пытаюсь) аннотировать довольно большой набор данных с помощью пакета udpipe.

Для эффективности я получил свои данные в таблице data.table и циклически перебираю набор данных небольшими партиями. Вот так (образец данных в конце):

library(here)
library(data.table)
library(udpipe)
udpipe_model <- udpipe_download_model("danish")
ft_speeches <- fread(here("data/folketinget_1953_2019_raw.csv"))
ft_annotation <- ft_speeches[,
    udpipe(
        .SD,
        udpipe_model$file_model,
        parallel.cores = 4,
    ),
    by = .groups,
.SDcols = c("text", "doc_id")]

Итак: возьмите ft_speeches, передайте столбцы doc_id и text в udpipe(), сгруппированные по .groups.

Я обрабатываю парламентские речи Дани sh с 1953 года по настоящее время, из которых более 800 000. Такие большие-я sh данные. .groups является побочным продуктом сбора данных, когда данные были обработаны в 100 пакетах.

Мой код содержит ошибки во время прохождения второй группы:

Column 1 of result for group 2 is type ‘integer’ but expecting ‘double’. Column types must be consistent for each group.

Итак, я собираю это часть того, почему data.table эффективен - он предварительно выделяет типы столбцов для всех групп.

Если я правильно понимаю, проблема в том, что аннотация udpipe иногда возвращает целые числа в столбце, который воспринимается как в основном удваивается. Могу ли я что-нибудь с этим сделать? Манипулировать выводом групповой манипуляции?

udpipe должен возвращать только целые числа или символы, для ?udpipe:

Столбцы целые числа, остальные поля являются символьными данными в кодировке UTF-8.

Полагаю, я мог бы создавать группы по одной в al oop и либо записывать на диск, либо делать data.table::rbindlist на нем.

Отпуск udpipe сразу на всех данных поглощает всю мою оперативную память и в конечном итоге приводит к сбою моего компьютера.

образец данных (в этом случае я использую только doc_id и text):

Title,id,Samling,Nr,Titel,Dato,speaker_id,text,Date,doc_id,Name,Year,Parti,Period,.groups
Ninn-Hansen,19581_M84_referat,19581,84,Referat af møde nr. 84 den 15. april 1959 kl. 13:00,15-04-1959,0,". under upolitisk maske forsøger en gruppe studerende, der kun midlertidigt er boende inden for kassens område, at besætte de 13 pladser i repræsentantskabet og de 13 stedfortrædere, som valget drejer sig om. en sådan urimelighed bør ikke finde sted. vi henstiller derfor indtrængende til alle vore medlemmer, der står som medlem af sygekassen strand, om at deltage i afstemningen og derved medvirke til at umuliggøre sådanne forsøg på kup. der kunne knyttes mange kommentarer til denne mærkværdige henvendelse. ordvalget 홢under upolitisk maske forstår man jo ikke. jeg mente i hvert fald, at en sygekasse er upolitisk, og at det ikke er noget monopol for en socialdemokratisk vælgerforening at lede den. talen om 홢midlertidigt boende medlemmer og den hånlige måde, det er gjort på, synes heller ikke at betyde en anerkendelse af, at der til medlemsrettighederne knytter sig også dette, at man har lov til at stemme: udtrykket 홢kup synes jeg heller ikke er velvalgt. efter hvad der er oplyst, er den pågældende skrivelse fundet liggende i valglokalet: at der også har været andre uregelmæssigheder, som man ikke accepterer ved almindelige valg, er bl. a. blevet oplyst i dagbladet b.t. for den 7. april. jeg vil gerne vide, hvad den højtærede socialminister har foretaget i anledning af disse oplysninger om uregelmæssigheder ved valget. det har altid interesse at få standset ethvert tilløb til tilsidesættelse, af de aner- 4259 15 4 59: spørgsmål tit ministrene.",1959-04-15T00:00:00Z,1,Erik Ninn-Hansen,1959,Det Konservative Folkeparti,1957-1960,1
Knud Østergaard,19871_M15_referat,19871,15,Referat af møde nr. 15 den 10. november 1987 kl. 13:00,10-11-1987,100009,": jeg minder om, at tiltaleformen er: hr. preben møller hansen.",1987-11-10T00:00:00Z,10,Knud Østergaard,1987,Konservative Folkeparti,1987-1988,1
Glistrup,19871_M15_referat,19871,15,Referat af møde nr. 15 den 10. november 1987 kl. 13:00,10-11-1987,100090,": det regnestykke holder ikke, for på det sted, jeg henviste til, kan man direkte læse, at der henvises til fremskridtspartiets forslag om forhøjet bundfradrag. det vil sige et bundfradrag på 48.000 kr. , 60.000 kr. og 75.000 1578 kr. for hver person. derfor holder det standpunkt heller. ikke. hermed sluttede forhandlingen. afstemning lovforslagets overgang til anden behandling vedtoges uden afstemning.",1987-11-10T00:00:00Z,100,Mogens Glistrup,1987,Fremskridtspartiet,1987-1988,1
Inge Krogh,19781_M13_referat,19781,13,Referat af møde nr. 13 den 25. oktober 1978 kl. 13:00,25-10-1978,10089,": kristeligt folkeparti kan gå ind for det foreliggende lovforslag, der er formet som en bemyndigelse for ministeren til at udforme regler for advokater fra andre ef-lande. da advokatuddannelserne i de forskellige lande er så vidt forskellige, har man afstået fra at give regler for etablering, for, at efadvokater kan etablere sig. det drejer sig. altså kun om tjenesteydelser, herunder ret til at møde for danske domstole og til rådgivning, og vi ser med sympati på det. det er en forpligtelse, som danmark har, idet man herved opfylder et ef-direktiv fra 1977.",1978-10-25T00:00:00Z,1000,Inge Krogh,1978,Kristeligt Folkeparti,1977-1979,1
Gade,19872_M18_referat,19872,18,Referat af møde nr. 18 den 1. juli 1988 kl. 10:00,01-07-1988,108978,": jeg forstod, at udtalelsen om organisationerne var provokerende, men det har ikke fået mig til at tro, at den ikke er fuldstændig rigtig. jeg vil selvfølgelig ikke danne en særlig forening. jeg vil tale med dem, der findes. i øvrigt vil jeg fastslå, at den politiske beslutning ligger her i folketinget efter dets egne overvejelser og ikke de kompromiser, man laver bag lukkede døre blandt organisationer, som har reelt modstridende interesser. jeg vil have modsætningerne tydeligt frem - og her i salen. dernæst sagde de konservatives ordfører, at vi skal have anden del af skuespillet til efteråret. ja, jeg frygter netop, at vi skal have anden akt med fremskridtspartiet til efteråret. og det er så blevet beskræftet. jeg vil gerne spørge hr. larsen-ledet: hvad betyder punkt 5, der hedder: liberalisering af reglerne om erhvervelse af landbrugsejendomme i §§ 20-21«, når der i punkt 6 står: ligestilling af gruppelandbrug og lignende med andelsbrug, jf. § 21, stk. 3«? hvad er der så tilbage andet end aktieselskaber? det er det kritiske punkt i dette papir om ejerformer. vi kan drøfte alting, ja vist, men det, vi taler om, er det, der er aftalt, og det er det, jeg skal have oplyst af partierne. hvad er 1097 1 7 88: 3. beh. af f. 1.1. vedr. realkreditlån m.v. i landbrugsejendomme der aftalt om aktieselskaber? for det kan da ikke være sådan, at man har lavet et punkt 5 i aftalen uden at vide, hvad det er, man har aftalt at drøfte, og hvad man skal lave forslag om, for det er jo ikke bare et spørgsmål om at drøfte: der står, at man skal lave forslag om det, og at man skal liberalisere. hvad er det, der står her? det er især vigtigt at få det klargjort af det radikale venstre. jeg håbede, at hr. larsen-ledet ville have sagt noget i retning af det, der står i politiken om, at det radikale venstre var villigt til at blokere, men det fik jeg ingen markering af. kort bemærkning .",1988-07-01T00:00:00Z,10000,Steen Gade,1988,Socialistisk Folkeparti,1988-1990,1
...