как накормить тибле спасир? - PullRequest
1 голос
/ 04 апреля 2019

Рассмотрим этот простой пример

bogustib <- tibble(doc_id = c(1,2,3),
                   text = c('bug', 'one love', '838383838'))

# A tibble: 3 x 2
  doc_id text     
   <dbl> <chr>    
1      1 bug      
2      2 one love 
3      3 838383838

Этот tibble называется bogustib, потому что я знаю, spacyr потерпит неудачу в строке 3.

> spacy_parse('838383838', lemma = FALSE, entity = TRUE, nounphrase = TRUE)
Error in `$<-.data.frame`(`*tmp*`, "doc_id", value = "text1") : 
  replacement has 1 row, data has 0

, поэтому, естественно,подача tibble на spacyr также не удастся

spacy_parse(bogustib, lemma = FALSE, entity = TRUE, nounphrase = TRUE)
Error in `$<-.data.frame`(`*tmp*`, "doc_id", value = "3") : 
  replacement has 1 row, data has 0

Мой вопрос: я думаю, что могу избежать этой проблемы, вызывая spacy_parse строка за строкой.

Однако это выглядит неэффективно, и я хотел бы использовать аргумент multithread для spacyr, чтобы ускорить вычисления на моем большом tibble.

Есть ли здесь какое-нибудь решение?Спасибо!

1 Ответ

1 голос
/ 04 апреля 2019

На самом деле, это не происходит в моей среде.В моей среде вывод выглядит так:

library(tidyverse)
library(spacyr)

bogustib <- tibble(doc_id = c(1,2,3),
                   text = c('bug', 'one love', '838383838'))

spacy_parse(bogustib)

spacy_parse('838383838', lemma = FALSE, entity = TRUE, nounphrase = TRUE)
## No noun phrase found in documents.
##   doc_id sentence_id token_id     token pos     entity
## 1  text1           1        1 838383838 NUM CARDINAL_B

Чтобы получить этот результат, я использовал последний мастер на github.Однако я смог воспроизвести вашу ошибку, когда работал с CRAN-версией spacyr.Я уверен, что я исправил ошибку некоторое время назад, но это не отражается на версии CRAN.Мы постараемся обновить CRAN как можно скорее.

Тем временем вы можете:

devtools::install_github('quanteda/spacyr')

Или загрузить репозиторий zip и запустить:

devtools::install('******')

**** - путь к разархивированному репозиторию.

...