看起来回到 42ffffd 版本(2/23/2019)的更改导致了我的问题。
- 在尝试运行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
- 注解掉
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,所以我相当确定这不是安装问题。任何帮助都将不胜感激!
1条答案
按热度按时间wkyowqbh1#
我也面临相同的问题
我已经解决了(至少对我有效)#2319