如何解决如何处理“ ValueError :'maxarg为空序列”
def build_word_affect(self):
affect_list = []
affect_dict = dict()
affect_frequencies = Counter()
lexicon_keys = self.lexicon.keys()
for word in self.words:
if word in lexicon_keys:
affect_list.extend(self.lexicon[word])
affect_dict.update({word:self.lexicon[word]})
for word in affect_list:
affect_frequencies[word] += 1
sum_values = sum(affect_frequencies.values())
affect_percent = dict()
for key in affect_frequencies.keys():
affect_percent.update({key:float(affect_frequencies[key])/float(sum_values)})
self.affect_list = affect_list
self.affect_dict = affect_dict
self.raw_emotion_scores = dict(affect_frequencies)
self.affect_frequencies = affect_percent
使用上面的代码,我试图获取频率的max_value
emo_dict = self.affect_frequencies
max_value = max(emo_dict.values())
但是发生了错误“ ValueError :('max()arg是一个空序列','发生在索引36')“,我发现发生此错误是因为有时我输入的文本没有任何单词在代码中的lexicon_keys中-> if word in lexicon_keys:
因此,我尽力制作一些类似if word not in lexicon_keys:
的异常,但它不起作用...请帮助我修复此代码问题。.谢谢您。
仅供参考。 lexicon_keys中有26,000个不同的单词。
解决方法
使用Try ...代码除外
OLDLAYOUT=$(setxkbmap -query | sed -n 's/^layout://p')
OLDVARIANT=$(setxkbmap -query | sed -n 's/^variant://p')
OLDOPTION=$(setxkbmap -query | sed -n 's/^options://p')
dyalog
OLDLAYOUT=$(echo $OLDLAYOUT | sed 's/^$/,/')
OLDVARIANT=$(echo $OLDVARIANT | sed 's/^$/,/')
setxkbmap -layout $OLDLAYOUT -variant $OLDVARIANT -option -option $OLDOPTION
,
我不确定我是否拥有与您的用法一致的所有内容,因为您未能提供自给自足的代码。您需要检查words
中是否还有任何成员。有两种简单的方法可以做到这一点。
一个是lexicon_keys
函数的简单应用程序:
any
另一个是集合交集的简单应用:
if any(word in lexicon_keys for word in self.words):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。