nltk 导入错误/变量错误在概率.条件频率分布.绘图()中,

trnvg8h3  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(153)

看起来回到 42ffffd 版本(2/23/2019)的更改导致了我的问题。

  1. 在尝试运行nltk书中第二章的示例时,我遇到了 ImportError。似乎是与2月23日特别相关的更改引起的:
    cfd = nltk.ConditionalFreqDist( ( genre, word ) for genre in brown.categories( ) for word in brown.words( categories=genre ) ) cfd.plot()
    Traceback (most recent call last):
    File "C:\XXX\PycharmProjects\ciExp\venv\lib\site-packages\nltk\probability.py", line 1907, in plot
    from matplotlib import plt
    ImportError: cannot import name 'plt' from 'matplotlib' (C:\XXX\PycharmProjects\ciExp\venv\lib\site-packages\matplotlib_init_.py)

将导入语句更正为 import matplotlib.pyplot as plt(与2月23日之前相同),在同一个plot()函数中会导致 UnboundedLocalError。5月7日对该行进行了更改,从 if v in self 中删除了一条注解:
File "C:\XXX\PycharmProjects\ciExp\venv\lib\site-packages\nltk\probability.py", line 1919, in plot
kwargs, 'samples', sorted(set(v for c in conditions
File "C:\XXX\PycharmProjects\ciExp\venv\lib\site-packages\nltk\probability.py", line 1920, in
if v in self
UnboundLocalError: local variable 'v' referenced before assignment
概率.py中的代码片段:
samples = _get_kwarg( kwargs, 'samples', sorted(set(v for c in conditions if v in self for v in self[c])) ) # this computation could be wasted

  1. 注解掉 if v in self 行(可能不太明智,但我想回溯一下)会导致 NameError:
    File "C:\XXX\PycharmProjects\ciExp\venv\lib\site-packages\nltk\probability.py", line 1940, in plot
    ax.plot(freqs, *args, **kwargs)
    NameError: name 'ax' is not defined
    我可以继续回溯,直到代码无限挂起(就我所知)。通过将概率.py文件恢复到2月23日之前的状态,matplotlib窗口将显示出来,但(就我所知)它会无限挂起,而不会显示我的数据。其他matplotlib函数调用似乎可以正常工作(如第一章中的那些)。在我使用的Python 3.7虚拟环境中,nltk的版本是3.4.3,matplotlib的版本是3.1.0,所以我相当确定这不是安装问题。任何帮助都将不胜感激!
wkyowqbh

wkyowqbh1#

我也面临相同的问题

我已经解决了(至少对我有效)#2319

相关问题