【问题标题】:Splitting text to words with R and cSplit()使用 R 和 cSplit() 将文本拆分为单词
【发布时间】:2015-09-17 06:49:14
【问题描述】:

我正在尝试将一系列句子拆分为单独的单词,即对文本进行标记。

我找到了一个 R 包 splitstackshape,它能够做我想做的事,几乎……它将输出截断为第一行和最后 5 行。

无论如何,这是我需要做的:

id text
1 Lorem ipsum dolor sit amet
2 consectetur adipiscing elit
3 Donec euismod enim quis 
4 nunc fringilla sodales
5 Etiam tempor ligula vitae 
6 pellentesque dictum
7 Quisque non justo scelerisque 
8 est facilisis congue quis vel
9 Phasellus ex lorem
10 eleifend at magna vel
11 egestas eleifend massa

输出:

id word
1 Lorem
1 ipsum
1 dolor
1 sit
1 amet
2 consectetur
2 adipiscing
...

也就是说,我需要单独的行中的单词,但要与它所属的句子的 ID 一起。

我正在尝试cSplit(data, "text", " ", "long"),但它被截断了..


更新。仅供参考,here 是如何做相反的

【问题讨论】:

  • '它截断'是什么意思?它完全可以完成您想要的工作,提醒它是一个 data.table 作为输出,如果需要,您可以将其转换为 data.frame。
  • 这只是“data.table”的显示输出。

标签: r splitstackshape


【解决方案1】:

cSplit 函数返回一个data.table

您所描述的是data.tables 的默认打印行为。要查看实际情况,请尝试以下操作:

library(data.table)
as.data.table(airquality)
print(as.data.table(airquality))

print(as.data.table(airquality), nrows = Inf)

因此,要显示完整的表格,您可以尝试:

library(splitstackshape)
print(cSplit(data, "text", " ", "long"), nrows = Inf)

【讨论】:

  • ...现在,当我了解到输出是 data.table 时,我可以轻松地将其转换回 data.frame。
猜你喜欢
  • 2021-10-16
  • 1970-01-01
  • 2015-08-02
  • 2010-10-21
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 2019-01-20
  • 2020-12-15
相关资源
最近更新 更多