今天照书写程序的时候发现,有一个地方把[[],[],[]]变成了array,但是我不知道为什么不变成matrix。我就试着改了一下。
def testingNb():
#生产数据
listOPosts,listClasses=loadDataSet()
#生成字典
myVocabList=createVocabList(listOPosts)
trainMat=[]
#求出数据矩阵
for postinDoc in listOPosts:
trainMat.append(setOfWords2Vec(myVocabList,postinDoc))
#求出需要的参数
p0V,p1V,pAb=trainNB0(mat(trainMat),array(listClasses))
testEntry=['love','my','dalmation']
上面倒数第二行,本来是array(),但是我给改成了mat,报错了。在另外一个地方用的时候。
numWords=len(trainMatrix[0])
按说matrix和array一样都是二维的,取0元素后肯定是可以求出来的,但是不行。打印一看,原来len()里面成了[[]]。这样每次求len得到的都是1.那样我就直接用下面的方法喽
numWords=shape(t