Как токенизировать мой набор данных в R с помощью библиотеки tidytext? - PullRequest
0 голосов
/ 14 июля 2020

Я пытался следовать Text Mining с помощью R от Джулии Силге, однако я не могу токенизировать свой набор данных с помощью функции unnest_tokens. 1005 * Вот набор данных, который я пытался использовать, который находится в сети, поэтому результаты должны быть воспроизводимыми:

bible <- readLines('http://bereanbible.com/bsb.txt')

И здесь все разваливается.

Входные данные:

 bible <- bible %>%
      unnest_tokens(word, text)

Вывод:

Error in tbl[[input]] : subscript out of bounds

Из того, что я читал об этой ошибке, в Rstudio проблема в том, что набор данных должен быть матрицей, поэтому я попытался преобразовать набор данных в матричную таблицу, и я получил то же сообщение об ошибке.

Ввод:

 bible <- readLines('http://bereanbible.com/bsb.txt')


bible <- as.matrix(bible, nrow = 31105, ncol = 2 )
      
bible <- bible %>%
  unnest_tokens(word, text)

Выход:

Error in tbl[[input]] : subscript out of bounds

Любые рекомендации по дальнейшим шагам возьмите или, может быть, некоторые хорошие источники для интеллектуального анализа текста, которые я мог бы использовать, продолжая погружаться в это, были бы очень признательны.

1 Ответ

2 голосов
/ 14 июля 2020

Проблема в том, что readLines() создает вектор, а не фрейм данных, как ожидалось unnest_tokens(), поэтому вам нужно его преобразовать. Также полезно выделить стих в отдельную колонку:

library(tidytext)
library(tidyverse)

bible_orig <- readLines('http://bereanbible.com/bsb.txt')

# Get rid of the copyright etc.
bible_orig <- bible_orig[4:length(bible_orig)]

# Convert to df
bible <- enframe(bible_orig)

# Separate verse from text
bible <- bible %>% 
 separate(value, into = c("verse", "text"), sep = "\t")

tidy_bible <- bible %>% 
  unnest_tokens(word, text)

tidy_bible
#> # A tibble: 730,130 x 3
#>     name verse       word     
#>    <int> <chr>       <chr>    
#>  1     1 Genesis 1:1 in       
#>  2     1 Genesis 1:1 the      
#>  3     1 Genesis 1:1 beginning
#>  4     1 Genesis 1:1 god      
#>  5     1 Genesis 1:1 created  
#>  6     1 Genesis 1:1 the      
#>  7     1 Genesis 1:1 heavens  
#>  8     1 Genesis 1:1 and      
#>  9     1 Genesis 1:1 the      
#> 10     1 Genesis 1:1 earth    
#> # … with 730,120 more rows

Создано 14.07.2020 пакетом реплекс (v0.3.0)

...