r - 将函数传递给令牌时使用 unnest_tokens() 时出错
问题描述
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)
解决方案
我面临同样的问题。我不知道为什么,在我过滤掉空的抽象和较短的抽象字符串后,一切似乎都很好。
abstract_entities <- article_data %>%
filter(nchar(abstract) > 30) %>%
select(paper_id, title, abstract) %>%
sample_n(1000) %>%
unnest_tokens(entity, abstract, token = tokenize_scispacy_entities)
推荐阅读
- oracle - 从冒号分隔的 varchar 中提取值,然后循环将数据插入数据库
- c - 如何将文件中的数据分配给结构中的指针?
- python - 在 python 中使用 youtube API 3 抓取频道中存在的多个视频数据
- spring - 将根路径自动重定向到 Spring Boot 上下文路径
- java - 如何从 alertDialog 片段接收是/否值到实际活动?
- curl - Tesla API(非官方)- 通过 cURL 进行测试
- regex - 在 Perl 中匹配数组中的精确字符串
- javascript - 用于捕获第一个父级的子级属性值的正则表达式
- angular7 - 完全匹配的垫表过滤器
- java - 活动不适用于添加导航抽屉