Ошибка при использовании unnest_tokens () при передаче функции токену - PullRequest
1 голос
/ 23 марта 2020

Ошибка в unnest_tokens.data.frame (., Entity, text, token = tokenize_scispacy_entities,: ожидаемый вывод функции токенизации в виде списка длиной 100

unnest_tokens () хорошо работает для образца мало наблюдений, но не на всем наборе данных.

https://github.com/dgrtwo/cord19 Воспроизводимый пример:

library(dplyr)
library(cord19)
library(tidyverse)
library(tidytext)
library(spacyr)

Установите модель отсюда - https://github.com/allenai/scispacy

spacy_initialize("en_core_sci_sm")

tokenize_scispacy_entities <- function(text) {
  spacy_extract_entity(text) %>%
    group_by(doc_id) %>%
    nest() %>%
    pull(data) %>%
    map("text") %>%
    map(str_to_lower)
}

paragraph_entities <- cord19_paragraphs %>% 
  select(paper_id, text) %>%
  sample_n(10) %>% 
  unnest_tokens(entity, text, token = tokenize_scispacy_entities)

1 Ответ

0 голосов
/ 26 марта 2020

У меня такая же проблема. Я не знаю причину, почему после того, как я отфильтрую пустую абстрактную и более короткую абстрактную строку, все, кажется, работает просто отлично.

 abstract_entities <- article_data %>%
  filter(nchar(abstract) > 30) %>%
  select(paper_id, title, abstract) %>%
  sample_n(1000) %>%
  unnest_tokens(entity, abstract, token =  tokenize_scispacy_entities)
...