Nada, esto es sólo para leernos con R los subtítulos del post anterior.
library(tidyverse)
root_directory = "/media/hd1/canadasreche@gmail.com/public/proyecto_cachitos/"
anno <- "2021"
# Construims un data frame con los nombrs de los ficheros
nombre_ficheros <- list.files(path = str_glue("{root_directory}{anno}_txt/")) %>%
enframe() %>%
rename(n_fichero = value)
nombre_ficheros
## # A tibble: 1,384 × 2
## name n_fichero
## <int> <chr>
## 1 1 00000001.jpg.subtitulo.tif.txt
## 2 2 00000002.jpg.subtitulo.tif.txt
## 3 3 00000003.jpg.subtitulo.tif.txt
## 4 4 00000004.jpg.subtitulo.tif.txt
## 5 5 00000005.jpg.subtitulo.tif.txt
## 6 6 00000006.jpg.subtitulo.tif.txt
## 7 7 00000007.jpg.subtitulo.tif.txt
## 8 8 00000008.jpg.subtitulo.tif.txt
## 9 9 00000009.jpg.subtitulo.tif.txt
## 10 10 00000010.jpg.subtitulo.tif.txt
## # … with 1,374 more rows
Ahora los podemos leer en orden
subtitulos <- list.files(path = str_glue("{root_directory}{anno}_txt/"),
pattern = "*.txt", full.names = TRUE) %>%
map(~read_file(.)) %>%
enframe() %>%
# hacemos el join con el dataframe anterior para tener el nombre del fichero original
left_join(nombre_ficheros)
## Joining, by = "name"
glimpse(subtitulos)
## Rows: 1,384
## Columns: 3
## $ name <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1…
## $ value <list> "\f", "\f", "FUN MÚSICA Y CINTAS DE VÍDEO\n\f", " \n\f", "\…
## $ n_fichero <chr> "00000001.jpg.subtitulo.tif.txt", "00000002.jpg.subtitulo.ti…
subtitulos
## # A tibble: 1,384 × 3
## name value n_fichero
## <int> <list> <chr>
## 1 1 <chr [1]> 00000001.jpg.subtitulo.tif.txt
## 2 2 <chr [1]> 00000002.jpg.subtitulo.tif.txt
## 3 3 <chr [1]> 00000003.jpg.subtitulo.tif.txt
## 4 4 <chr [1]> 00000004.jpg.subtitulo.tif.txt
## 5 5 <chr [1]> 00000005.jpg.subtitulo.tif.txt
## 6 6 <chr [1]> 00000006.jpg.subtitulo.tif.txt
## 7 7 <chr [1]> 00000007.jpg.subtitulo.tif.txt
## 8 8 <chr [1]> 00000008.jpg.subtitulo.tif.txt
## 9 9 <chr [1]> 00000009.jpg.subtitulo.tif.txt
## 10 10 <chr [1]> 00000010.jpg.subtitulo.tif.txt
## # … with 1,374 more rows
en n_fichero tenemos el nombre y en value el texto
subtitulos %>%
pull(value) %>%
## usamos `[[` que es el operador para acceder a la lista el que normalemente se usa [[nombre_elemento]]
`[[`(16)
## [1] "Ella resume a la perfección la filosofía de Cachitos:\nmontar “La fiesta” “Buscando en el baúl de los recuerdos”.\n\n \n\f"
# equivalentemente
# subtitulos %>%
# pull(value) %>%
# pluck(16)
Como sabemos que hay muchos ficheros sin texto podemos contar letras.
subtitulos <- subtitulos %>%
mutate(n_caracteres = nchar(value))
subtitulos %>%
group_by(n_caracteres) %>%
count()
## # A tibble: 128 × 2
## # Groups: n_caracteres [128]
## n_caracteres n
## <int> <int>
## 1 1 428
## 2 3 97
## 3 4 19
## 4 5 13
## 5 6 15
## 6 7 8
## 7 8 6
## 8 9 3
## 9 10 3
## 10 11 2
## # … with 118 more rows
subtitulos %>%
group_by(n_caracteres) %>%
count() %>%
ggplot(aes(x = n_caracteres, y = n)) +
geom_col()
Y vemos que hay muchos subtitulos con pocos caracteres. Si vemos por ejemplo los que tienen 10 caracteres
subtitulos %>%
filter(n_caracteres <12) %>%
pull(value)
## [[1]]
## [1] "\f"
##
## [[2]]
## [1] "\f"
##
## [[3]]
## [1] " \n\f"
##
## [[4]]
## [1] "\f"
##
## [[5]]
## [1] " \n\f"
##
## [[6]]
## [1] " \n\f"
##
## [[7]]
## [1] "\f"
##
## [[8]]
## [1] "\f"
##
## [[9]]
## [1] "\f"
##
## [[10]]
## [1] "\f"
##
## [[11]]
## [1] "\f"
##
## [[12]]
## [1] "\f"
##
## [[13]]
## [1] "\f"
##
## [[14]]
## [1] "\f"
##
## [[15]]
## [1] "\f"
##
## [[16]]
## [1] " \n\f"
##
## [[17]]
## [1] "\f"
##
## [[18]]
## [1] "\f"
##
## [[19]]
## [1] "\f"
##
## [[20]]
## [1] "\f"
##
## [[21]]
## [1] "\f"
##
## [[22]]
## [1] "\f"
##
## [[23]]
## [1] "\f"
##
## [[24]]
## [1] "\f"
##
## [[25]]
## [1] "\f"
##
## [[26]]
## [1] "\f"
##
## [[27]]
## [1] "\f"
##
## [[28]]
## [1] "\f"
##
## [[29]]
## [1] "\f"
##
## [[30]]
## [1] "IN\n\n \n\f"
##
## [[31]]
## [1] "\f"
##
## [[32]]
## [1] "\f"
##
## [[33]]
## [1] "——\n\f"
##
## [[34]]
## [1] "\f"
##
## [[35]]
## [1] "\f"
##
## [[36]]
## [1] " \n\n \n\f"
##
## [[37]]
## [1] "\f"
##
## [[38]]
## [1] "\f"
##
## [[39]]
## [1] "\f"
##
## [[40]]
## [1] "\f"
##
## [[41]]
## [1] " \n\f"
##
## [[42]]
## [1] "\f"
##
## [[43]]
## [1] "\f"
##
## [[44]]
## [1] "\f"
##
## [[45]]
## [1] " \n\f"
##
## [[46]]
## [1] "\f"
##
## [[47]]
## [1] " \n\f"
##
## [[48]]
## [1] " \n\f"
##
## [[49]]
## [1] "\f"
##
## [[50]]
## [1] "\f"
##
## [[51]]
## [1] "\f"
##
## [[52]]
## [1] "\f"
##
## [[53]]
## [1] "\f"
##
## [[54]]
## [1] "\f"
##
## [[55]]
## [1] "\f"
##
## [[56]]
## [1] "\f"
##
## [[57]]
## [1] "\f"
##
## [[58]]
## [1] "\f"
##
## [[59]]
## [1] "Y\n» pi\n\nA\n\f"
##
## [[60]]
## [1] "\f"
##
## [[61]]
## [1] "\f"
##
## [[62]]
## [1] "\f"
##
## [[63]]
## [1] "\f"
##
## [[64]]
## [1] "\f"
##
## [[65]]
## [1] "mo\n\f"
##
## [[66]]
## [1] " \n\f"
##
## [[67]]
## [1] "\f"
##
## [[68]]
## [1] "\f"
##
## [[69]]
## [1] " \n\f"
##
## [[70]]
## [1] " \n\f"
##
## [[71]]
## [1] "\f"
##
## [[72]]
## [1] "\f"
##
## [[73]]
## [1] "\f"
##
## [[74]]
## [1] "\f"
##
## [[75]]
## [1] " \n\n \n\f"
##
## [[76]]
## [1] "\f"
##
## [[77]]
## [1] "EU\n\f"
##
## [[78]]
## [1] " \n\f"
##
## [[79]]
## [1] " \n\f"
##
## [[80]]
## [1] " \n\f"
##
## [[81]]
## [1] "Ú\n\f"
##
## [[82]]
## [1] "\f"
##
## [[83]]
## [1] " \n\f"
##
## [[84]]
## [1] "\f"
##
## [[85]]
## [1] "\f"
##
## [[86]]
## [1] "\f"
##
## [[87]]
## [1] "\f"
##
## [[88]]
## [1] "\f"
##
## [[89]]
## [1] "\f"
##
## [[90]]
## [1] "\f"
##
## [[91]]
## [1] "\f"
##
## [[92]]
## [1] "\f"
##
## [[93]]
## [1] "\f"
##
## [[94]]
## [1] "\f"
##
## [[95]]
## [1] "ma a\n\f"
##
## [[96]]
## [1] "\f"
##
## [[97]]
## [1] " \n\f"
##
## [[98]]
## [1] "Tm\n\f"
##
## [[99]]
## [1] " \n\f"
##
## [[100]]
## [1] "\f"
##
## [[101]]
## [1] " \n\f"
##
## [[102]]
## [1] " \n\f"
##
## [[103]]
## [1] "\f"
##
## [[104]]
## [1] "\f"
##
## [[105]]
## [1] "\f"
##
## [[106]]
## [1] "\f"
##
## [[107]]
## [1] "\f"
##
## [[108]]
## [1] "\f"
##
## [[109]]
## [1] "\f"
##
## [[110]]
## [1] "\f"
##
## [[111]]
## [1] "\f"
##
## [[112]]
## [1] "\f"
##
## [[113]]
## [1] "\f"
##
## [[114]]
## [1] "\f"
##
## [[115]]
## [1] "\f"
##
## [[116]]
## [1] "\f"
##
## [[117]]
## [1] "\f"
##
## [[118]]
## [1] "\f"
##
## [[119]]
## [1] "\f"
##
## [[120]]
## [1] "ale\n\ne\n\f"
##
## [[121]]
## [1] "aer\n\f"
##
## [[122]]
## [1] "\f"
##
## [[123]]
## [1] " \n\f"
##
## [[124]]
## [1] "o\n\n \n\f"
##
## [[125]]
## [1] "\f"
##
## [[126]]
## [1] "\f"
##
## [[127]]
## [1] "\f"
##
## [[128]]
## [1] " \n\f"
##
## [[129]]
## [1] "\f"
##
## [[130]]
## [1] "\f"
##
## [[131]]
## [1] "\f"
##
## [[132]]
## [1] "\f"
##
## [[133]]
## [1] "\f"
##
## [[134]]
## [1] "\f"
##
## [[135]]
## [1] " \n\f"
##
## [[136]]
## [1] "\f"
##
## [[137]]
## [1] "\f"
##
## [[138]]
## [1] "A, SL\n\nAR\n\f"
##
## [[139]]
## [1] " \n\n \n\f"
##
## [[140]]
## [1] "\f"
##
## [[141]]
## [1] "\f"
##
## [[142]]
## [1] "\f"
##
## [[143]]
## [1] "\f"
##
## [[144]]
## [1] "\f"
##
## [[145]]
## [1] "\f"
##
## [[146]]
## [1] "\f"
##
## [[147]]
## [1] "\f"
##
## [[148]]
## [1] "\f"
##
## [[149]]
## [1] "\f"
##
## [[150]]
## [1] " \n\f"
##
## [[151]]
## [1] "\f"
##
## [[152]]
## [1] "\f"
##
## [[153]]
## [1] "\f"
##
## [[154]]
## [1] "\f"
##
## [[155]]
## [1] "\f"
##
## [[156]]
## [1] "\f"
##
## [[157]]
## [1] "\f"
##
## [[158]]
## [1] "\f"
##
## [[159]]
## [1] "\f"
##
## [[160]]
## [1] "\f"
##
## [[161]]
## [1] " \n\f"
##
## [[162]]
## [1] "\f"
##
## [[163]]
## [1] "\f"
##
## [[164]]
## [1] "DAA PA\n\f"
##
## [[165]]
## [1] "\f"
##
## [[166]]
## [1] "\f"
##
## [[167]]
## [1] "\f"
##
## [[168]]
## [1] "\f"
##
## [[169]]
## [1] " \n\f"
##
## [[170]]
## [1] "\f"
##
## [[171]]
## [1] "\f"
##
## [[172]]
## [1] "\f"
##
## [[173]]
## [1] "\f"
##
## [[174]]
## [1] "\f"
##
## [[175]]
## [1] "\f"
##
## [[176]]
## [1] "\f"
##
## [[177]]
## [1] "\f"
##
## [[178]]
## [1] "\f"
##
## [[179]]
## [1] " \n\f"
##
## [[180]]
## [1] "\f"
##
## [[181]]
## [1] "\f"
##
## [[182]]
## [1] "\f"
##
## [[183]]
## [1] " \n\f"
##
## [[184]]
## [1] "\f"
##
## [[185]]
## [1] "5\n\f"
##
## [[186]]
## [1] "\f"
##
## [[187]]
## [1] " \n\f"
##
## [[188]]
## [1] "\f"
##
## [[189]]
## [1] "\f"
##
## [[190]]
## [1] " \n\f"
##
## [[191]]
## [1] "\f"
##
## [[192]]
## [1] "\f"
##
## [[193]]
## [1] "\f"
##
## [[194]]
## [1] "\f"
##
## [[195]]
## [1] "\f"
##
## [[196]]
## [1] "\f"
##
## [[197]]
## [1] "\f"
##
## [[198]]
## [1] "\f"
##
## [[199]]
## [1] "\f"
##
## [[200]]
## [1] "\f"
##
## [[201]]
## [1] "\f"
##
## [[202]]
## [1] "\f"
##
## [[203]]
## [1] "\f"
##
## [[204]]
## [1] "\f"
##
## [[205]]
## [1] "\f"
##
## [[206]]
## [1] "\f"
##
## [[207]]
## [1] "\f"
##
## [[208]]
## [1] "\f"
##
## [[209]]
## [1] "\f"
##
## [[210]]
## [1] "\f"
##
## [[211]]
## [1] "\f"
##
## [[212]]
## [1] "\f"
##
## [[213]]
## [1] "\f"
##
## [[214]]
## [1] "\f"
##
## [[215]]
## [1] "\f"
##
## [[216]]
## [1] " \n\f"
##
## [[217]]
## [1] "\f"
##
## [[218]]
## [1] "\f"
##
## [[219]]
## [1] "\f"
##
## [[220]]
## [1] "\f"
##
## [[221]]
## [1] "\f"
##
## [[222]]
## [1] "\f"
##
## [[223]]
## [1] " \n\f"
##
## [[224]]
## [1] "\f"
##
## [[225]]
## [1] "\f"
##
## [[226]]
## [1] "\f"
##
## [[227]]
## [1] "\f"
##
## [[228]]
## [1] " \n\f"
##
## [[229]]
## [1] "\f"
##
## [[230]]
## [1] " \n\f"
##
## [[231]]
## [1] "\f"
##
## [[232]]
## [1] "\f"
##
## [[233]]
## [1] "\f"
##
## [[234]]
## [1] "\f"
##
## [[235]]
## [1] "ds\n\f"
##
## [[236]]
## [1] "\f"
##
## [[237]]
## [1] "\f"
##
## [[238]]
## [1] "CKWELL\n\f"
##
## [[239]]
## [1] "\f"
##
## [[240]]
## [1] "\f"
##
## [[241]]
## [1] "\f"
##
## [[242]]
## [1] "\f"
##
## [[243]]
## [1] "\f"
##
## [[244]]
## [1] "\f"
##
## [[245]]
## [1] "\f"
##
## [[246]]
## [1] "\f"
##
## [[247]]
## [1] " \n\f"
##
## [[248]]
## [1] " \n\f"
##
## [[249]]
## [1] "\f"
##
## [[250]]
## [1] "\f"
##
## [[251]]
## [1] "\f"
##
## [[252]]
## [1] "\f"
##
## [[253]]
## [1] "\f"
##
## [[254]]
## [1] "\f"
##
## [[255]]
## [1] "149\n\f"
##
## [[256]]
## [1] "NT\n\f"
##
## [[257]]
## [1] "RINA\nys\n\f"
##
## [[258]]
## [1] "\f"
##
## [[259]]
## [1] "\f"
##
## [[260]]
## [1] "\f"
##
## [[261]]
## [1] " \n\f"
##
## [[262]]
## [1] "\f"
##
## [[263]]
## [1] "\f"
##
## [[264]]
## [1] "\f"
##
## [[265]]
## [1] " \n\f"
##
## [[266]]
## [1] "\f"
##
## [[267]]
## [1] "\f"
##
## [[268]]
## [1] "\f"
##
## [[269]]
## [1] "\f"
##
## [[270]]
## [1] "VESTER\n\f"
##
## [[271]]
## [1] " \n\f"
##
## [[272]]
## [1] " \n\f"
##
## [[273]]
## [1] " \n\f"
##
## [[274]]
## [1] " \n\f"
##
## [[275]]
## [1] " \n\f"
##
## [[276]]
## [1] "\f"
##
## [[277]]
## [1] "\f"
##
## [[278]]
## [1] "\f"
##
## [[279]]
## [1] "\f"
##
## [[280]]
## [1] "\f"
##
## [[281]]
## [1] "\f"
##
## [[282]]
## [1] "\f"
##
## [[283]]
## [1] "\f"
##
## [[284]]
## [1] "MN\n\f"
##
## [[285]]
## [1] "\f"
##
## [[286]]
## [1] "\f"
##
## [[287]]
## [1] "\f"
##
## [[288]]
## [1] "\f"
##
## [[289]]
## [1] "\f"
##
## [[290]]
## [1] "\f"
##
## [[291]]
## [1] "\f"
##
## [[292]]
## [1] "\f"
##
## [[293]]
## [1] "\f"
##
## [[294]]
## [1] "\f"
##
## [[295]]
## [1] "INS\n\f"
##
## [[296]]
## [1] "\f"
##
## [[297]]
## [1] "\f"
##
## [[298]]
## [1] "\f"
##
## [[299]]
## [1] "\f"
##
## [[300]]
## [1] "\f"
##
## [[301]]
## [1] "\f"
##
## [[302]]
## [1] "\f"
##
## [[303]]
## [1] "\f"
##
## [[304]]
## [1] "\f"
##
## [[305]]
## [1] "\f"
##
## [[306]]
## [1] " \n\f"
##
## [[307]]
## [1] "\f"
##
## [[308]]
## [1] " \n\f"
##
## [[309]]
## [1] " \n\f"
##
## [[310]]
## [1] "\f"
##
## [[311]]
## [1] "\f"
##
## [[312]]
## [1] "\f"
##
## [[313]]
## [1] "\f"
##
## [[314]]
## [1] "\f"
##
## [[315]]
## [1] " \n\f"
##
## [[316]]
## [1] " \n\f"
##
## [[317]]
## [1] " \n\n \n\f"
##
## [[318]]
## [1] " \n\f"
##
## [[319]]
## [1] " \n\f"
##
## [[320]]
## [1] "\f"
##
## [[321]]
## [1] "\f"
##
## [[322]]
## [1] " \n\f"
##
## [[323]]
## [1] " \n\f"
##
## [[324]]
## [1] " \n\f"
##
## [[325]]
## [1] " \n\f"
##
## [[326]]
## [1] "\f"
##
## [[327]]
## [1] "\f"
##
## [[328]]
## [1] "\f"
##
## [[329]]
## [1] "\f"
##
## [[330]]
## [1] "\f"
##
## [[331]]
## [1] "\f"
##
## [[332]]
## [1] "\f"
##
## [[333]]
## [1] "\f"
##
## [[334]]
## [1] "\f"
##
## [[335]]
## [1] "\f"
##
## [[336]]
## [1] "\f"
##
## [[337]]
## [1] " \n\f"
##
## [[338]]
## [1] "\f"
##
## [[339]]
## [1] "\f"
##
## [[340]]
## [1] " \n\f"
##
## [[341]]
## [1] " \n\n \n\f"
##
## [[342]]
## [1] "\f"
##
## [[343]]
## [1] "\f"
##
## [[344]]
## [1] "\f"
##
## [[345]]
## [1] "\f"
##
## [[346]]
## [1] "\f"
##
## [[347]]
## [1] "\f"
##
## [[348]]
## [1] " \n\f"
##
## [[349]]
## [1] "\f"
##
## [[350]]
## [1] "\f"
##
## [[351]]
## [1] "ul\n\f"
##
## [[352]]
## [1] "ya\n\f"
##
## [[353]]
## [1] "7\n\f"
##
## [[354]]
## [1] " \n\f"
##
## [[355]]
## [1] "\f"
##
## [[356]]
## [1] " \n\f"
##
## [[357]]
## [1] " \n\f"
##
## [[358]]
## [1] "\f"
##
## [[359]]
## [1] "\f"
##
## [[360]]
## [1] "\f"
##
## [[361]]
## [1] "\f"
##
## [[362]]
## [1] "\f"
##
## [[363]]
## [1] "\f"
##
## [[364]]
## [1] "\f"
##
## [[365]]
## [1] "\f"
##
## [[366]]
## [1] "\f"
##
## [[367]]
## [1] "\f"
##
## [[368]]
## [1] "\f"
##
## [[369]]
## [1] "\f"
##
## [[370]]
## [1] " \n\f"
##
## [[371]]
## [1] "AIAOS\n\f"
##
## [[372]]
## [1] "\f"
##
## [[373]]
## [1] "\f"
##
## [[374]]
## [1] "\f"
##
## [[375]]
## [1] "\f"
##
## [[376]]
## [1] "\f"
##
## [[377]]
## [1] "\f"
##
## [[378]]
## [1] "\f"
##
## [[379]]
## [1] "\f"
##
## [[380]]
## [1] "\f"
##
## [[381]]
## [1] " \n\f"
##
## [[382]]
## [1] "\f"
##
## [[383]]
## [1] "\f"
##
## [[384]]
## [1] "\f"
##
## [[385]]
## [1] "\f"
##
## [[386]]
## [1] " \n\f"
##
## [[387]]
## [1] "\f"
##
## [[388]]
## [1] "\f"
##
## [[389]]
## [1] "\f"
##
## [[390]]
## [1] "\f"
##
## [[391]]
## [1] "\f"
##
## [[392]]
## [1] "(\n\nME\n\f"
##
## [[393]]
## [1] "\f"
##
## [[394]]
## [1] "AA\n\f"
##
## [[395]]
## [1] "\f"
##
## [[396]]
## [1] "\f"
##
## [[397]]
## [1] "\f"
##
## [[398]]
## [1] "\f"
##
## [[399]]
## [1] " \n\f"
##
## [[400]]
## [1] "AE MN\n\f"
##
## [[401]]
## [1] "\f"
##
## [[402]]
## [1] "A A\n\f"
##
## [[403]]
## [1] "\f"
##
## [[404]]
## [1] "\f"
##
## [[405]]
## [1] "\f"
##
## [[406]]
## [1] "\f"
##
## [[407]]
## [1] "Ml\nx\n\f"
##
## [[408]]
## [1] "\f"
##
## [[409]]
## [1] "\f"
##
## [[410]]
## [1] "m 2 wm\n\f"
##
## [[411]]
## [1] "\f"
##
## [[412]]
## [1] "\f"
##
## [[413]]
## [1] "\f"
##
## [[414]]
## [1] "\f"
##
## [[415]]
## [1] "a TN E A\n\f"
##
## [[416]]
## [1] " \n\n \n\f"
##
## [[417]]
## [1] "\f"
##
## [[418]]
## [1] "Hi\n” <\n\f"
##
## [[419]]
## [1] "\f"
##
## [[420]]
## [1] "\f"
##
## [[421]]
## [1] "\f"
##
## [[422]]
## [1] "ura\n\f"
##
## [[423]]
## [1] "\f"
##
## [[424]]
## [1] "lA A\n\n \n\f"
##
## [[425]]
## [1] " \n\f"
##
## [[426]]
## [1] "\f"
##
## [[427]]
## [1] "\f"
##
## [[428]]
## [1] " \n\n-arei\n\f"
##
## [[429]]
## [1] "\f"
##
## [[430]]
## [1] " \n\f"
##
## [[431]]
## [1] " \n\f"
##
## [[432]]
## [1] "\f"
##
## [[433]]
## [1] "\f"
##
## [[434]]
## [1] "\f"
##
## [[435]]
## [1] "\f"
##
## [[436]]
## [1] "\f"
##
## [[437]]
## [1] " \n\f"
##
## [[438]]
## [1] "\f"
##
## [[439]]
## [1] "\f"
##
## [[440]]
## [1] "\f"
##
## [[441]]
## [1] "\f"
##
## [[442]]
## [1] "\f"
##
## [[443]]
## [1] "\f"
##
## [[444]]
## [1] "y\n\f"
##
## [[445]]
## [1] "HE\n\f"
##
## [[446]]
## [1] "\f"
##
## [[447]]
## [1] "\f"
##
## [[448]]
## [1] "A\n\n'\n\f"
##
## [[449]]
## [1] " \n\f"
##
## [[450]]
## [1] "ly\n\f"
##
## [[451]]
## [1] "\f"
##
## [[452]]
## [1] "e ee\n\f"
##
## [[453]]
## [1] "\f"
##
## [[454]]
## [1] "\f"
##
## [[455]]
## [1] "En el\n\f"
##
## [[456]]
## [1] "\f"
##
## [[457]]
## [1] " \n\f"
##
## [[458]]
## [1] "\f"
##
## [[459]]
## [1] " \n\f"
##
## [[460]]
## [1] " \n\f"
##
## [[461]]
## [1] "\f"
##
## [[462]]
## [1] " \n\f"
##
## [[463]]
## [1] "\f"
##
## [[464]]
## [1] "bf\n\nDar\n\f"
##
## [[465]]
## [1] "\f"
##
## [[466]]
## [1] "\f"
##
## [[467]]
## [1] "\f"
##
## [[468]]
## [1] " \n\f"
##
## [[469]]
## [1] "\f"
##
## [[470]]
## [1] "\f"
##
## [[471]]
## [1] "\f"
##
## [[472]]
## [1] "\f"
##
## [[473]]
## [1] " \n\n2%\n\f"
##
## [[474]]
## [1] "y\n\f"
##
## [[475]]
## [1] "\f"
##
## [[476]]
## [1] "\f"
##
## [[477]]
## [1] " \n\f"
##
## [[478]]
## [1] "\f"
##
## [[479]]
## [1] " \n\f"
##
## [[480]]
## [1] "\f"
##
## [[481]]
## [1] "e\n>\n\f"
##
## [[482]]
## [1] "\f"
##
## [[483]]
## [1] "\f"
##
## [[484]]
## [1] "\f"
##
## [[485]]
## [1] "\f"
##
## [[486]]
## [1] "\f"
##
## [[487]]
## [1] "md\n\f"
##
## [[488]]
## [1] "\f"
##
## [[489]]
## [1] " \n\f"
##
## [[490]]
## [1] "\f"
##
## [[491]]
## [1] " \n\f"
##
## [[492]]
## [1] "\f"
##
## [[493]]
## [1] "\f"
##
## [[494]]
## [1] " \n\f"
##
## [[495]]
## [1] "\f"
##
## [[496]]
## [1] "\f"
##
## [[497]]
## [1] "\f"
##
## [[498]]
## [1] "\f"
##
## [[499]]
## [1] "\f"
##
## [[500]]
## [1] "ME\n\f"
##
## [[501]]
## [1] "\f"
##
## [[502]]
## [1] " \n\n \n\f"
##
## [[503]]
## [1] "\f"
##
## [[504]]
## [1] " \n\f"
##
## [[505]]
## [1] " \n\f"
##
## [[506]]
## [1] "\f"
##
## [[507]]
## [1] "\f"
##
## [[508]]
## [1] "\f"
##
## [[509]]
## [1] " \n\f"
##
## [[510]]
## [1] "\f"
##
## [[511]]
## [1] " \n\f"
##
## [[512]]
## [1] "\f"
##
## [[513]]
## [1] "\f"
##
## [[514]]
## [1] "\f"
##
## [[515]]
## [1] "\f"
##
## [[516]]
## [1] " \n\f"
##
## [[517]]
## [1] "\f"
##
## [[518]]
## [1] "\f"
##
## [[519]]
## [1] "\f"
##
## [[520]]
## [1] "\f"
##
## [[521]]
## [1] "\f"
##
## [[522]]
## [1] "— O\n\n“DN\n\f"
##
## [[523]]
## [1] "\f"
##
## [[524]]
## [1] " \n\f"
##
## [[525]]
## [1] "\f"
##
## [[526]]
## [1] "\f"
##
## [[527]]
## [1] "\f"
##
## [[528]]
## [1] "\f"
##
## [[529]]
## [1] "\f"
##
## [[530]]
## [1] " \n\f"
##
## [[531]]
## [1] "\f"
##
## [[532]]
## [1] " \n\f"
##
## [[533]]
## [1] " \n\f"
##
## [[534]]
## [1] "\f"
##
## [[535]]
## [1] "\f"
##
## [[536]]
## [1] "\f"
##
## [[537]]
## [1] "Ja\n\n!\n\f"
##
## [[538]]
## [1] "\f"
##
## [[539]]
## [1] "\f"
##
## [[540]]
## [1] " \n\f"
##
## [[541]]
## [1] "\f"
##
## [[542]]
## [1] "\f"
##
## [[543]]
## [1] "\f"
##
## [[544]]
## [1] "\f"
##
## [[545]]
## [1] "\f"
##
## [[546]]
## [1] "\f"
##
## [[547]]
## [1] "\f"
##
## [[548]]
## [1] "\f"
##
## [[549]]
## [1] " \n\f"
##
## [[550]]
## [1] " \n\f"
##
## [[551]]
## [1] " \n\f"
##
## [[552]]
## [1] " \n\f"
##
## [[553]]
## [1] " \n\f"
##
## [[554]]
## [1] "\f"
##
## [[555]]
## [1] "Doe\n\f"
##
## [[556]]
## [1] "\f"
##
## [[557]]
## [1] " \n\f"
##
## [[558]]
## [1] "==\"\n\f"
##
## [[559]]
## [1] "\f"
##
## [[560]]
## [1] " \n\f"
##
## [[561]]
## [1] "\f"
##
## [[562]]
## [1] "\f"
##
## [[563]]
## [1] "\f"
##
## [[564]]
## [1] "\f"
##
## [[565]]
## [1] " \n\f"
##
## [[566]]
## [1] "- AN\n\f"
##
## [[567]]
## [1] " \n\f"
##
## [[568]]
## [1] "\f"
##
## [[569]]
## [1] "\f"
##
## [[570]]
## [1] "\f"
##
## [[571]]
## [1] "\f"
##
## [[572]]
## [1] "\f"
##
## [[573]]
## [1] "\f"
##
## [[574]]
## [1] "\f"
##
## [[575]]
## [1] "\f"
##
## [[576]]
## [1] " \n\n1]\n\f"
##
## [[577]]
## [1] "\f"
##
## [[578]]
## [1] "\f"
##
## [[579]]
## [1] "\f"
##
## [[580]]
## [1] " \n\f"
##
## [[581]]
## [1] " \n\f"
##
## [[582]]
## [1] "\f"
##
## [[583]]
## [1] "\f"
##
## [[584]]
## [1] "\f"
##
## [[585]]
## [1] " \n\f"
##
## [[586]]
## [1] " \n\f"
##
## [[587]]
## [1] "\f"
##
## [[588]]
## [1] " \n\f"
##
## [[589]]
## [1] " \n\f"
##
## [[590]]
## [1] "\f"
##
## [[591]]
## [1] "\f"
##
## [[592]]
## [1] " \n\n \n\f"
##
## [[593]]
## [1] "\f"
##
## [[594]]
## [1] "\f"
Que se corresponden con haber pillado parte no del subtítulo sino del nombre de la actuación
subtitulos %>%
filter(n_caracteres ==15)
## # A tibble: 2 × 4
## name value n_fichero n_caracteres
## <int> <list> <chr> <int>
## 1 571 <chr [1]> 00000571.jpg.subtitulo.tif.txt 15
## 2 1361 <chr [1]> 00001361.jpg.subtitulo.tif.txt 15
Usando la librería magick
en R que permite usar imagemagick
en R, ver post de Raúl Vaquerizo y su homenaje a Sean Connery, podemos ver el fotgrama correspondiente
library(magick)
## Linking to ImageMagick 6.9.10.23
## Enabled features: fontconfig, freetype, fftw, lcms, pango, webp, x11
## Disabled features: cairo, ghostscript, heic, raw, rsvg
## Using 12 threads
(directorio_imagenes <- str_glue("{root_directory}video/{anno}_jpg/"))
## /media/hd1/canadasreche@gmail.com/public/proyecto_cachitos/video/2021_jpg/
image_read(str_glue("{directorio_imagenes}00000018.jpg"))
También podemos ver hasta cuando pasa eso, por ejemplo si vemos subtítulos con 18 caracteres
subtitulos %>%
filter(n_caracteres ==18) %>%
pull(value)
## [[1]]
## [1] " \n\nJ0 EN EL AMOR\n\f"
##
## [[2]]
## [1] "¿EDITH BROOKS\nch\n\f"
##
## [[3]]
## [1] " \n\nmme Tha Power\n\f"
##
## [[4]]
## [1] " \n\n\"RONTERA\n\n \n\f"
subtitulos <- subtitulos %>%
filter(n_caracteres > 17)
glimpse(subtitulos)
## Rows: 778
## Columns: 4
## $ name <int> 3, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30…
## $ value <list> "FUN MÚSICA Y CINTAS DE VÍDEO\n\f", "El servicio meteoro…
## $ n_fichero <chr> "00000003.jpg.subtitulo.tif.txt", "00000014.jpg.subtitulo…
## $ n_caracteres <int> 30, 118, 82, 117, 117, 25, 100, 97, 86, 88, 84, 43, 52, 8…
Con el fin de detectar cuáles están duplicados y aprovechando que están en orden de aparición, podemos hacer utilizar distancias de texto para calcular la distancia de cada subtítulo con el anterior, y si la distancia es pequeña es que es el mismo rótulo.
Primero hacemos una mini-limpieza.
string_mini_clean <- function(string){
string <- gsub("?\n|\n", " ", string)
string <- gsub("\r|?\f|=", " ", string)
string <- gsub('“|”|—|>'," ", string)
string <- gsub("[[:punct:][:blank:]]+", " ", string)
string <- tolower(string)
string <- gsub(" ", " ", string)
string <-
return(string)
}
# Haciendo uso de programacion funciona con purrr es muy fácil pasar esta función a cada elemento. y decirle que # el reultado es string con map_chr
subtitulos_proces <- subtitulos %>%
mutate(texto = map_chr(value, string_mini_clean)) %>%
select(-value)
subtitulos_proces %>%
select(texto)
## # A tibble: 778 × 1
## texto
## <chr>
## 1 "fun música y cintas de vídeo "
## 2 "el servicio meteorológico de cachitos informa se prevén vientos de fiesta m…
## 3 "no es para menos llevamos dos años conformándonos solo con aires de siesta "
## 4 "ella resume a la perfección la filosofía de cachitos montar la fiesta busca…
## 5 " ella resume a la perfección la filosofía de cachitos montar la fiesta busc…
## 6 " oncé a2y in love "
## 7 "esperamos que tengáis una tele bien grande no sabemos si cabrá tanto flow e…
## 8 "liberté egalité fraternité vacunaté y beyoncé la lola flores negra ejercien…
## 9 "mirad su pelo ya os dijimos que el aire de fiesta iba a soplar fuerte esta …
## 10 "mirad su pelo ya os dijimos que el aire de fiesta iba a soplar fuerte esta …
## # … with 768 more rows
Y ya vemos a simple vista que hay algun duplicado. Calculemos ahora la distancia de strings, utilizando la función stringdist
de la librería del mismo nombre.
subtitulos_proces %>%
mutate(texto_anterior = lag(texto)) %>%
# calculamos distancias con método lcs (que no me he leído que hace exactamente)
mutate(distancia = stringdist::stringdist(texto, texto_anterior, method = "lcs")) %>%
# veamos algunos elementos
filter(distancia < 19) %>%
arrange(desc(distancia) ) %>%
select(texto, texto_anterior, distancia)
## # A tibble: 89 × 3
## texto texto_anterior distancia
## <chr> <chr> <dbl>
## 1 " la rosalía emérita " " alía ica ye yé a " 18
## 2 "chango llegó a españa como as… "chango llegó a españa como aspira… 15
## 3 "leonard cohen y el pitufo gru… "leonard cohen y el pitufo gruñón … 13
## 4 " el stress del año 2000 nos l… " el stress del año 2000 nos llegó… 7
## 5 "aquí ya llevaba cuatro años d… "aquí ya llevaba cuatro años de ca… 7
## 6 "imborrable siempre la sonrisa… "la imborrable siempre la sonrisa … 6
## 7 "7 literalmente significa pued… "literalmente significa puedes toc… 6
## 8 " las palabras no vienen fácil… " las palabras no vienen fácilment… 5
## 9 "en españa el g arm nació ya v… "en españa el glam nació ya vintag… 5
## 10 "nosotros también lo sentimos … " 4 nosotros también lo sentimos s… 5
## # … with 79 more rows
Y parece que funciona. Así que decido quitar las filas dónde la distancia sea menos que 19 y así eliminar muchos de los duplicados.
subtitulos_proces <- subtitulos_proces %>%
mutate(texto_anterior = lag(texto)) %>%
mutate(distancia = stringdist::stringdist(texto, texto_anterior, method = "lcs")) %>%
filter(distancia > 19) %>%
select(-texto_anterior)
subtitulos_proces %>%
head()
## # A tibble: 6 × 5
## name n_fichero n_caracteres texto distancia
## <int> <chr> <int> <chr> <dbl>
## 1 14 00000014.jpg.subtitulo.tif.txt 118 "el servicio mete… 106
## 2 15 00000015.jpg.subtitulo.tif.txt 82 "no es para menos… 110
## 3 16 00000016.jpg.subtitulo.tif.txt 117 "ella resume a la… 102
## 4 18 00000018.jpg.subtitulo.tif.txt 25 " oncé a2y in lov… 100
## 5 19 00000019.jpg.subtitulo.tif.txt 100 "esperamos que te… 92
## 6 20 00000020.jpg.subtitulo.tif.txt 97 "liberté egalité … 105
write_csv(subtitulos_proces,
file = str_glue("{root_directory}{anno}_txt_unido.csv"))
comments powered by Disqus