使用R和cSplit()将文本拆分为单词

4

我想把一系列的句子分成单独的词,也就是对文本进行分词。

我找到了一个名为splitstackshape的R包,它能够完成我想要的工作,但是它将输出截断为前5行和后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") ,但它会截断..


更新。供您参考,这里 是如何反向操作的


“它截断”是什么意思?它完全可以完成你想要的工作,记住它的输出是一个data.table,如果需要,你可以将其转换为data.frame。 - Colonel Beauvel
2
那只是“data.table”的显示输出。 - A5C1D2H2I1M1N2O1R2T1
1个回答

3

cSplit函数返回一个data.table

您所描述的是data.table的默认打印行为。要查看这个过程,请尝试以下操作:

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。 - Joshua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接