Cachitos. Segunda parte

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