import pprint
train_data = [[1,1,1], [1,2,2], [2,1,3], [2,2,2],[3,1,1], [3,2,2], [4,1,3], [4,2,2]]
train_label = [[1], [1], [2], [2]]
这是数据,基本上我正在尝试解决一个文本分类问题。
train_data
格式为
[[docID, wordID, count]
和
train_label
确定哪个文档ID属于哪个类。因此,在给定的情况下,位置1处的文档属于类1,位置3处的文档属于类2。
totaldata = []
在总计数据中,第1列是文档ID,第2列是wordID,第3列是其计数。
for index in range(len(train_data)):
temp =[]
if index == 0:
temp.append(train_label[train_data[index][0]-1][0])
temp.append(train_data[index][0])
temp.append(train_data[index][1])
temp.append(train_data[index][2])
totaldata.append(temp)
elif(totaldata[len(totaldata)-1][0] == train_label[train_data[index][0] -1][0]):
temp.append(train_label[train_data[index][0] -1 ][0])
temp.append(train_data[index][0])
temp.append(train_data[index][1])
temp.append(train_data[index][2])
totaldata.append(temp)
elif(totaldata[len(totaldata)-1][0] != train_label[train_data[index][0] -1][0]):
temp.append(train_label[train_data[index][0] -1 ][0])
temp.append(train_data[index][0])
temp.append(train_data[index][1])
temp.append(train_data[index][2])
totaldata.append(temp)
TotalData
是一个嵌套列表,它组合了前两个列表中的数据,并以
[[classID, docID, wordID, Count]]
nf = []
在里面
nf
我想在特定类中存储特定wordID的总计数。
这意味着我的预期输出应该是
[[1,1,4],[1,2,4],[2,1,4],[2,2,4]]
nf = []
for index in range(len(totaldata)):
for i in range(len(totaldata)):
temp = []
temp.append(totaldata[index][0])
if i == 0:
sum = totaldata[index][3]
temp.append(totaldata[index][2])
temp.append(sum)
nf.append(temp)
elif(((nf[-1][0]) ==totaldata[i][0])and nf[-1][1] == totaldata[i][2]):
sum+= totaldata[i][3]
nf[-1][2] = sum
elif(((nf[-1][0]) ==totaldata[i][0])and nf[-1][1] != totaldata[i][2]):
sum = int(totaldata[i][3])
temp.append(totaldata[i][2])
temp.append(sum)
nf.append(sum)
pprint.pprint(nf)