我尝试从数据的每一行生成ngram。它们应该用",“来分隔。
输入内容如下:
ID Aufzeichnungen
1 vipr plus wurde gemacht, üz in behandlung
1 Röntgen der Hand, HCL aufgetragen
2 Hand wurde gemacht, Hand wurde betäubt输出应该如下所示:
ID Aufzeichnungen ngram
<dbl> <chr> <chr>
1 1 vipr plus wurde gemacht, üz in behandlung vipr plus wurde gemacht
2 1 vipr plus wurde gemacht, üz in behandlung üz in behandlung
3 1 Röntgen der Hand, HCL aufgetragen Röntgen der Hand
4 1 Röntgen der Hand, HCL aufgetragen HCL aufgetragen
5 2 Hand wurde gemacht, Hand wurde betäubt Hand wurde gemacht
6 2 Hand wurde gemacht, Hand wurde betäubt Hand wurde betäubt这样,每一个",“就可以将每一个符号分开,并与每一个名词形成一个新的列。
我的代码是:
PKV %>%
group_by(ID) %>%
group_modify(function(x, y)
tibble(Aufzeichnungen = x$Aufzeichnungen,
ngram = ngram_asweka(x$Aufzeichnungen, sep = ",")))有一个类似的问题,但我不知道为什么,但代码不起作用。“参数'str‘必须是单个字符串时发生错误。”
我不能用我的数据做一个大的行,因为它必须分开。
谢谢你的帮助!
发布于 2022-08-09 20:50:36
这看起来更像是“,上的拆分字符串”,而不是"make n-gram“。采取这一做法:
library(dplyr)
library(tidyr)
df %>%
mutate(ngram = Aufzeichnungen) %>%
separate_rows(ngram, sep = ", ", )
# # A tibble: 6 × 3
# ID Aufzeichnungen ngram
# <int> <chr> <chr>
# 1 1 vipr plus wurde gemacht, üz in behandlung vipr plus wurde gemacht
# 2 1 vipr plus wurde gemacht, üz in behandlung üz in behandlung
# 3 1 Röntgen der Hand, HCL aufgetragen Röntgen der Hand
# 4 1 Röntgen der Hand, HCL aufgetragen HCL aufgetragen
# 5 2 Hand wurde gemacht, Hand wurde betäubt Hand wurde gemacht
# 6 2 Hand wurde gemacht, Hand wurde betäubt Hand wurde betäubt 交替(和更多的字符串-分裂)
df %>%
mutate(ngram = strsplit(Aufzeichnungen, ", ")) %>%
unnest(ngram)
# for the same result使用这些数据:
df = read.table(text = 'ID Aufzeichnungen
1 "vipr plus wurde gemacht, üz in behandlung"
1 "Röntgen der Hand, HCL aufgetragen"
2 "Hand wurde gemacht, Hand wurde betäubt"', header = T)https://stackoverflow.com/questions/73297739
复制相似问题