当我尝试在n中使用MaxentClassifier的CG算法时,发生了ValueError

2024-07-01 07:09:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试来自http://nltk.googlecode.com/svn/trunk/doc/howto/classify.html的MaxentClassifier示例时,我得到了以下错误:

等级评估0

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    classifier = MaxentClassifier.train(train)
  File "C:\Python27\lib\site-packages\nltk\classify\maxent.py", line 323, in train
    gaussian_prior_sigma, **cutoffs)
  File "C:\Python27\lib\site-packages\nltk\classify\maxent.py", line 1456, in train_maxent_classifier_with_scipy
    model.fit(algorithm=algorithm)
  File "C:\Python27\lib\site-packages\scipy\maxentropy\maxentropy.py", line 1026, in fit
    return model.fit(self, self.K, algorithm)
  File "C:\Python27\lib\site-packages\scipy\maxentropy\maxentropy.py", line 226, in fit
    callback=callback)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 636, in fmin_cg
    gfk = myfprime(x0)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 176, in function_wrapper
    return function(x, *args)
  File "C:\Python27\lib\site-packages\scipy\maxentropy\maxentropy.py", line 420, in grad
    G = self.expectations() - self.K
ValueError: operands could not be broadcast together with shapes (54) (12) 

Python代码:

^{pr2}$

但我不知道怎么解决。 帮帮我,谢谢!在


Tags: inpyselflibpackageslinesitetrain
1条回答
网友
1楼 · 发布于 2024-07-01 07:09:46

如果您设置了算法,则会起作用:

>>> algorithm = nltk.classify.MaxentClassifier.ALGORITHMS[0]
>>> algorithm
'GIS'
>>> classifier = nltk.MaxentClassifier.train(train, algorithm)

  ==> Training (100 iterations)

      Iteration    Log Likelihood    Accuracy
                         -
             1          -0.69315        0.556
             2          -0.65164        0.778
             3          -0.62713        0.778
             4          -0.61084        0.667
             5          -0.59935        0.667
             6          -0.59096        0.667
            .................................
            .................................

(请注意,您错过了培训语料库中的一行)

编辑:一些nltk算法失败,包括“CG”。问题可能与报告的here相同。如果是这种情况,可能会在nltk的下一个版本中解决。您也可以向nltk报告一个bug,以帮助开发人员和您自己。在

由于报告的bug似乎与numpy广播和numpy的过时用法有关,也许您可以尝试使用一个旧版本的numpy

相关问题 更多 >

    热门问题