在 python 3.8 中出现异常的 show_most_informative_features() 错误

Posted

技术标签:

【中文标题】在 python 3.8 中出现异常的 show_most_informative_features() 错误【英文标题】:show_most_informative_features() errors with exception in python 3.8 【发布时间】:2020-08-08 15:12:03 【问题描述】:

问题:

 "line 188, in most_informative_features self._most_informative_features = sorted( TypeError: '<' not supported between instances of 'str' and 'tuple'" while using naiveBayes classifier

代码:

print('accuracy:', nltk.classify.util.accuracy(classifier, testdata))
classifier.show_most_informative_features(10)

accuracy 打印,但 show_most_informative_features 出错,上述异常表明 naivebayes.py 出错。关于修复的任何想法? 这是发生异常的那一行:既然,在标准 python 库中更改代码不是一个好主意,我在调用函数时是否遗漏了什么?

self._most_informative_features = sorted(
                features, key=lambda feature_: (minprob[feature_]/maxprob[feature_], feature_[0],
                                                feature_[1] in [None, False, True], str(feature_[1]).lower())
            )
        return self._most_informative_features[:n]

【问题讨论】:

【参考方案1】:

classifier = nltk.NaiveBayesClassifier.train(training_set) 中的 training_set 应该是一个字典,其中键都是元组(而不是元组和字符串的混合)。

【讨论】:

以上是关于在 python 3.8 中出现异常的 show_most_informative_features() 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 Python Rocket 出现在 Python 3.8 中?

import _tkinter # 如果失败,您的 Python 可能未配置为在 python 3.8 中出现 Tk 错误

python-----异常处理

异常事件循环在 python 3.8 中使用 aiohttp 和 asyncio 关闭

006_Python 异常处理

Python学习第八天_异常