gpt4 book ai didi

python - 朴素贝叶斯分类器值错误 Python

转载 作者:行者123 更新时间:2023-11-30 09:17:15 25 4
gpt4 key购买 nike

我对 Python 和机器学习非常陌生,下面是我在 python 3 中的代码,我正在 jupyter nottebook 中编写 python 代码。

import random
def splitDataset(dataset, splitRatio):
trainSize = int(len(dataset) * splitRatio)
trainSet = []
copy = list(dataset)
while len(trainSet) < trainSize:
index = random.randrange(len(copy))
trainSet.append(copy.pop(index))
return [trainSet, testSet]

import csv
import sys
from langdetect import detect
import random
import math


def loadCsv(filename):
lines = csv.reader(open(filename, "r",encoding='latin1'))
x=0
myList=[]
for line in lines:
t=line[14]
try:
b = detect(t)
if b=="en":
myList.insert(x,t)
x=x+1
except Exception :
y=0
return myList


import nltk.classify.util
from nltk.classify import NaiveBayesClassifier

filename = 'F:\\Study\\Text Mining (GIT)\\sources\\Data.csv'
splitRatio = 0.8
loadCsv(filename)
trainingSet, testSet = splitDataset(myList, splitRatio)

classifier = nltk.NaiveBayesClassifier.train(trainingSet)
print (nltk.classify.util.accuracy(classifier, testSet))

classifier.show_most_informative_features()

运行上述代码后,我收到以下错误

ValueError                                Traceback (most recent call last)
<ipython-input-206-75c0ffc409d5> in <module>()
10 print(len(testSet))
11
---> 12 classifier = nltk.NaiveBayesClassifier.train(trainingSet)
13 print (nltk.classify.util.accuracy(classifier, testSet))
14

f:\python\lib\site-packages\nltk\classify\naivebayes.py in train(cls,
labeled_featuresets, estimator)
195 # Count up how many times each feature value occurred, given
196 # the label and featurename.
--> 197 for featureset, label in labeled_featuresets:
198 label_freqdist[label] += 1
199 for fname, fval in featureset.items():

ValueError: too many values to unpack (expected 2)


trainingSet=[ "Pleasant 10 min walk along the sea front to the Water Bus. restaurants etc. Hotel was comfortable breakfast was good - quite a variety. Room aircon didn't work very well. Take mosquito repelant!", "Really lovely hotel. Stayed on the very top floor and were surprised by a Jacuzzi bath we didn't know we were getting! Staff were friendly and helpful and the included breakfast was great! Great location and great value for money. Didn't want to leave!", 'We stayed here for four nights in October. The hotel staff were welcoming, friendly and helpful. Assisted in booking tickets for the opera. The rooms were clean and comfortable- good shower, light and airy rooms with windows you could open wide. Beds were comfortable. Plenty of choice for breakfast.Spa at hotel nearby which we used while we were there.', 'We stayed here for four nights in October. The hotel staff were welcoming, friendly and helpful. Assisted in booking tickets for the opera. The rooms were clean and comfortable- good shower, light and airy rooms with windows you could open wide. Beds were comfortable. Plenty of choice for breakfast.Spa at hotel nearby which we used while we were there.',.....]

我看过以下网站寻求解决方案,但找不到任何解决方案: ValueError: too many values to unpack (NLTK classifier)

NLTK ValueError: too many values to unpack (expected 2)

http://www.solutionscan.org/220106-python

ValueError : too many values to unpack (expected 2)

NLTK accuracy: "ValueError: too many values to unpack"

最佳答案

您对 train() 的输入是错误的。它需要输入元组列表,其中元组的第一个元素应该是字典。

def train(cls, labeled_featuresets, estimator=ELEProbDist):
"""
:param labeled_featuresets: A list of classified featuresets,
i.e., a list of tuples ``(featureset, label)``.
"""
label_features = []
dic = {}
dic['chipotle']='mexican'
dic['burger']='american'

label_features.append((dic,'food'))

NaiveBayesClassifier.train(label_features)

>><nltk.classify.naivebayes.NaiveBayesClassifier object at 0x000001704916BDD8>

您可以引用 NLTK documentation 的示例并打印出特征集值以了解格式。

关于python - 朴素贝叶斯分类器值错误 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52467159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com