【问题标题】:NLP Classifier - Python too many values to unpackNLP 分类器 - Python 太多的值无法解包
【发布时间】:2018-12-19 20:14:06
【问题描述】:

进入分类器时出现值错误 -campaign_name 中的系列是一个字符串,而 tokenized_sents 是几个字符串。发生了什么?

df['campaign_name'] = str.lower(df.campaign_name)
df['tokenized_sents'] = df.campaign_name.apply(nltk.word_tokenize)

X = df['tokenized_sents']
y = df['campaign_name']

xTrain, xTest, yTrain, yTest = tts(X, y, train_size=0.65, random_state=1)

classifier = nltk.NaiveBayesClassifier.train(xTrain,yTrain)

[ValueError: too many values to unpack (expected 2)][1]

【问题讨论】:

    标签: python classification nltk


    【解决方案1】:

    您在classifier = nltk.NaiveBayesClassifier.train(xTrain,yTrain) 中传递了两个值xTrain 和yTrain。你只能通过一个来训练。

    这可能是在寻找什么?

    classifier = nltk.NaiveBayesClassifier.train(xTrain)
    
    y_pred = classifier.classify(xTest)
    

    【讨论】:

      【解决方案2】:

      如果您查看 NLTK 的朴素贝叶斯分类器的文档:

      @classmethod
          def train(cls, labeled_featuresets, estimator=ELEProbDist):
              """
              :param labeled_featuresets: A list of classified featuresets,
                  i.e., a list of tuples ``(featureset, label)``.
              """
      

      您应该以与在 scikit-learn 设置中使用的方式略有不同的方式来组织特征和标签。在这里,它是特征集和标签的元组列表,而不是特征矩阵和标签列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-09
        • 1970-01-01
        • 2018-08-12
        • 2013-06-06
        • 2017-07-17
        • 1970-01-01
        • 2019-03-28
        • 1970-01-01
        相关资源
        最近更新 更多