jieba segmenter применяется к столбцу "содержимое", а затем создает новый столбец "слова" с разделенными символами в r

Я пытаюсь сегментировать китайские предложения из столбца "содержимое" на слова с помощью пакета jieba в r, а затем создать новый соответствующий столбец "слова", где каждая строка содержит сегментированные слова соответствующих строк из предыдущего столбца "содержимое".

df$content (3 rows):
我喜歡吃雞翅;我不喜歡吃雞;哇這是什麼醬做得雞翅?

desired df$words (3 rows):
我 喜歡 吃 雞翅;我 不 喜歡 吃 雞;哇 這 是 什麼 醬 做 得 雞翅?

где столбец слов имеет 3 соответствующие строки с сегментированными версиями столбца содержимого.

пакет jieba хорошо выполняет сегментацию китайских слов, но у меня возникают проблемы с сохранением сегментированных слов внутри одной строки. jieba segmenter, кажется, сегментирует все слова столбца "содержание", а затем обрабатывает каждое слово как отдельную строку. Я действительно застрял в том, как решить эту проблему - мне нужно изменить количество переработанных векторов?? любая помощь будет принята с благодарностью.

Это мой код:

df$words <- qseg <= df$content

Что возвращает ошибку:

Error: Assigned data `df$words <- qseg <= df$content` must be compatible with existing data. x Existing data has 29175 rows. x Assigned data has 1327701 rows. ℹ Only vectors of size 1 are recycled. Run `rlang::last_error()` to see where the error occurred.
15.
stop(fallback)
14.
signal_abort(cnd)
13.
cnd_signal(error_assign_incompatible_size(nrow, value, j, i_arg, value_arg))
12.
(function (cnd) { cnd_signal(error_assign_incompatible_size(nrow, value, j, i_arg, value_arg)) ...
11.
signalCondition(cnd)
10.
signal_abort(cnd)
9.
abort(message, class = c(class, "vctrs_error"), ...)
8.
stop_vctrs(x_size = x_size, y_size = size, x_arg = x_arg, class = c("vctrs_error_incompatible_size", "vctrs_error_recycle_incompatible_size"))
7.
stop_recycle_incompatible_size(x_size = 1327701L, size = 29175L, x_arg = "")
6.
vec_recycle(value[[j]], nrow)
5.
withCallingHandlers(for (j in seq_along(value)) { if (!is.null(value[[j]])) { value[[j]] <- vec_recycle(value[[j]], nrow) } ...
4.
vectbl_recycle_rhs(value, fast_nrow(x), length(j), i_arg = NULL, value_arg)
3.
tbl_subassign(x, i = NULL, as_string(name), list(value), i_arg = NULL, j_arg = name, value_arg = substitute(value))
2.
`$<-.tbl_df`(`*tmp*`, testing, value = c("网友", "爆料", "网友", "在", "宝鸡", "贴", "吧", "发帖", "称", "有人", "在", "铁路", "门口", "摆放", "花圈", "灵堂", "抗议", "据", "未", "证实", "消息", "说", "期间", "新", "与", ...
1.
`$<-`(`*tmp*`, testing, value = c("网友", "爆料", "网友", "在", "宝鸡", "贴", "吧", "发帖", "称", "有人", "在", "铁路", "门口", "摆放", "花圈", "灵堂", "抗议", "据", "未", "证实", "消息", "说", "期间", "新", "与", "争执", ...

1 ответ

Обновление: я заставил это работать! для будущих людей, которые столкнутся с этой проблемой с jieba, используйте вместо этого пакет "chinese.misc", функцию seg_file(): https://cran.r-project.org/web/packages/chinese.misc/chinese.misc.pdf. он отлично работает всего с одной строчкой кода! Я провел два дня, разочаровавшись из-за этого, и оказалось, что это был просто неисправный пакет jieba. слава богу за пакет chinese.misc!

Другие вопросы по тегам