将引理的结果插入到新的数据框中

问题描述

使用此方法可以查看每个单词的引理:

library(spacyr)
df <- data.frame(body = c("model for receiving"),id = c(132))
df$body <- as.character(df$body)
df$id <- as.character(df$id)
spacy_parse(structure(df$body,names = df$id),lemma = TRUE,pos = TRUE)

但是,当使用以下代码段再次使用新的引理词创建输入数据帧时,它会产生输入结果,而不是

df2 <- spacy_parse(structure(df$body,pos = TRUE) %>%
    mutate(id = doc_id) %>%
    group_by(id) %>%
    summarize(body = paste(lemma,collapse = " "))

预期结果:

df <- data.frame(body = c("model for receive"),id = c(132))

解决方法

对我来说很好:

R.Version()$version.string
## [1] "R version 4.0.2 (2020-06-22)"

df <- data.frame(
  body = c("model for receiving"),id = c(132),stringsAsFactors = FALSE
)

library("dplyr",warn.conflicts = FALSE)
library("spacyr")
spacy_initialize()
## Found 'spacy_condaenv'. spacyr will use this environment
## successfully initialized (spaCy Version: 2.3.2,language model: en_core_web_sm)
## (python options: type = "condaenv",value = "spacy_condaenv")

spacy_parse(structure(df$body,names = df$id),lemma = TRUE,pos = TRUE
) %>%
  mutate(id = doc_id) %>%
  group_by(id) %>%
  summarize(body = paste(lemma,collapse = " "))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 1 x 2
##   id    body             
##   <chr> <chr>            
## 1 132   model for receive

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...