条件频率分布的问题

时间:2013-01-25 16:08:08

标签: nltk

我有以下代码:

corpus= CategorizedPlaintextCorpusReader(loc,'(?!\.svn).*\.txt', cat_pattern=r'(Shakespeare|Milton)/.*')
    cfd=nltk.ConditionalFreqDist ((genre,word)
                          for genre in corpus.categories()
                          for word in corpus.words(categories = genre))
    genres=['Shakespeare','Milton']
    pronouns=['I','you','he','she', 'it','we','they']

    cfd.tabulate (conditions=genres,samples=pronouns)

现在,由于一些强大的特殊原因,我收到以下错误:     “category = re.match(self._pattern,file_id).group(1) AttributeError:'NoneType'对象没有属性'group'“

任何人都知道那是什么意思?

1 个答案:

答案 0 :(得分:1)

category = re.match(self._pattern, file_id).group(1) 
AttributeError: 'NoneType' object has no attribute 'group'

此错误消息告诉您re.match已返回None。换句话说,没有匹配。当你寻找组(1)时,它会抛出错误。

在前进方面你有几个选择:

  1. 简化您的匹配命令。

  2. 要防守。首先使用if检查是否有match然后查找其组。

  3. 通常,当您遇到这样的错误时,请不断简化代码以查看导致问题的原因。 Python可以用非常简洁的方式编写,但我发现在学习时更好地描述它。

  4. SO question应该为您提供更多选择。

    希望能帮助你前进。