Python中的文本预处理

Python中的文本预处理,python,nlp,kaggle,Python,Nlp,Kaggle,我想用Python为NLP项目构建一个文本语料库。我在LSHTC4 Kaggle挑战赛中见过这种文本格式: 5 0:10 8:1 18:2 54:1 442:2 3784:1 5640:1 43501:1 第一个数字对应于标签 由“:”分隔的每组数字对应于向量的(特征,值)对,其中第一个数字是特征的id,第二个数字是其频率(例如,id为18的特征在实例中出现2次) 我不知道这是否是将文本数据预处理为数字向量的常用方法。我在挑战中找不到预处理过程,数据已经预处理。在R中不需要包(如果我没有弄错

我想用Python为NLP项目构建一个文本语料库。我在LSHTC4 Kaggle挑战赛中见过这种文本格式:

5 0:10 8:1 18:2 54:1 442:2 3784:1 5640:1 43501:1 
第一个数字对应于标签

由“:”分隔的每组数字对应于向量的(特征,值)对,其中第一个数字是特征的id,第二个数字是其频率(例如,id为18的特征在实例中出现2次)


我不知道这是否是将文本数据预处理为数字向量的常用方法。我在挑战中找不到预处理过程,数据已经预处理。

R
中不需要包(如果我没有弄错的话,在Python中也不需要包)。首先将所有内容拆分(并删除首字母
5
)。我猜您希望结果是数字,而不是字符串:

x<-"5 0:10 8:1 18:2 54:1 442:2 3784:1 5640:1 43501:1"
y<-as.integer(unlist(strsplit(x,split=" |:"))[-1])
feature<-y[seq(1,length(y),by=2)]
[1]     0     8    18    54   442  3784  5640 43501
value<-y[seq(2,length(y),by=2)]
[1] 10  1  2  1  2  1  1  1
如果要将它们分配给
数据表
进行分析:

库(数据表)
那么开始的
5
是什么意思呢?它是属于文档的类别,它是标签
cbind(feature,value)
     feature value
[1,]       0    10
[2,]       8     1
[3,]      18     2
[4,]      54     1
[5,]     442     2
[6,]    3784     1
[7,]    5640     1
[8,]   43501     1
> dt
   feature value
1:       0    10
2:       8     1
3:      18     2
4:      54     1
5:     442     2
6:    3784     1
7:    5640     1
8:   43501     1