Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows NLTK v3.2:无法创建NLTK.pos_标记()_Windows_Python 2.7_Nltk_Pos Tagger - Fatal编程技术网

Windows NLTK v3.2:无法创建NLTK.pos_标记()

Windows NLTK v3.2:无法创建NLTK.pos_标记(),windows,python-2.7,nltk,pos-tagger,Windows,Python 2.7,Nltk,Pos Tagger,嗨,文本挖掘冠军 我正在Windows 10上使用Anaconda和NLTK v3.2(客户端环境) 当我尝试POS标记时,我不断收到URLLIB2错误: URLError: <urlopen error unknown url type: c> URLError: urllib2似乎无法识别windows路径?我怎样才能解决这个问题 该命令很简单,如下所示: nltk.pos\u标记(nltk.word\u标记(“Hello World”)) 编辑: 这里有一个重复的问题,但是

嗨,文本挖掘冠军

我正在Windows 10上使用Anaconda和NLTK v3.2(客户端环境)

当我尝试POS标记时,我不断收到URLLIB2错误:

URLError: <urlopen error unknown url type: c>
URLError:
urllib2似乎无法识别windows路径?我怎样才能解决这个问题

该命令很简单,如下所示:

nltk.pos\u标记(nltk.word\u标记(“Hello World”))

编辑: 这里有一个重复的问题,但是我认为马南和阿尔瓦斯在这里得到的答案是更好的解决办法。

此问题已从NLTK v3.2.1中解决。升级NLTK版本可以解决此问题,例如,
pip安装-U NLTK


我面临同样的问题,遇到的错误如下

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\tag\__init__.py", line 110, in pos_tag
tagger = PerceptronTagger()
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\tag\perceptron.py", line 141, in __init__
self.load(AP_MODEL_LOC)
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\tag\perceptron.py", line 209, in load
self.model.weights, self.tagdict, self.classes = load(loc)
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\data.py", line 801, in load
opened_resource = _open(resource_url)
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\data.py", line 924, in _open
return urlopen(resource_url)
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 391, in open
response = self._open(req, data)
  File "C:\Python27\lib\urllib2.py", line 414, in _open
'unknown_open', req)
  File "C:\Python27\lib\urllib2.py", line 369, in _call_chain
result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 1206, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: c>
self.tagdict = {}
self.classes = set()
    if load:
        AP_MODEL_LOC = 'file:'+str(find('taggers/averaged_perceptron_tagger/'+PICKLE))
          self.load(AP_MODEL_LOC)
        # Initially it was:AP_MODEL_LOC = str(find('taggers/averaged_perceptron_tagger/'+PICKLE)) 

def tag(self, tokens):
(基本上,只要你有Python27文件夹,就可以在你的文件夹中找到一个等价的位置)

错误基本上存在于代码中,用于在您的机器中查找平均的感知器标记器的相应位置。我们可以看看data.py文件中提到的关于这一点的第801行和第924行

我认为NLTK开发者社区最近修复了代码中的这个错误。看看几天前他们对代码所做的承诺

进行更改的代码段如下所示:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\tag\__init__.py", line 110, in pos_tag
tagger = PerceptronTagger()
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\tag\perceptron.py", line 141, in __init__
self.load(AP_MODEL_LOC)
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\tag\perceptron.py", line 209, in load
self.model.weights, self.tagdict, self.classes = load(loc)
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\data.py", line 801, in load
opened_resource = _open(resource_url)
  File "C:\Python27\lib\site-packages\nltk-3.2-py2.7.egg\nltk\data.py", line 924, in _open
return urlopen(resource_url)
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 391, in open
response = self._open(req, data)
  File "C:\Python27\lib\urllib2.py", line 414, in _open
'unknown_open', req)
  File "C:\Python27\lib\urllib2.py", line 369, in _call_chain
result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 1206, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: c>
self.tagdict = {}
self.classes = set()
    if load:
        AP_MODEL_LOC = 'file:'+str(find('taggers/averaged_perceptron_tagger/'+PICKLE))
          self.load(AP_MODEL_LOC)
        # Initially it was:AP_MODEL_LOC = str(find('taggers/averaged_perceptron_tagger/'+PICKLE)) 

def tag(self, tokens):
将文件更新为最近的提交对我来说很有效,并且能够使用nltk.pos_标记命令。我相信这也会解决您的问题(假设您已经设置了所有其他设置)。

此问题已从NLTK v3.2.1中解决。请升级你的NLTK


首先阅读@MananVyas,了解原因:


以下是如何使用NLTK 3.2,在不降级到NLTK v3.1的情况下,使用此“hack”:


不久前我也面临同样的问题。 解决方案:

nltk.download('averaged_perceptron_tagger')

像做梦一样工作。感谢@MananVyasFWIW,我在Win10 python 3.4(64位)上遇到了相同的错误,nltk是通过pip安装的,截至4月2日。在重新启动之后,找到percepthon.py文件并在上面的代码段中进行更改可以很好地解决问题。希望我在4小时前看到这篇文章,因为我认为问题出在我的代币上。抱歉,在你的答案中添加了编辑,这是为了避免跨平台交流和NLTK用户在github回购协议上就解决了这个问题开始新的问题。可能的重复看起来是的。我之前读过那篇文章。我运行了上面的代码,它运行得很好,但是当我尝试运行nltk例程时,它仍然给出了我正在使用的代码。我也成功地运行了Sarim Hussain的建议,但没有成功。尝试升级你的nltk,
pip install-U nltk
你在使用哪个操作系统?你的Python版本是什么?你是如何安装python的?您是如何安装NLTK的?您是通过
pip
还是
conda
安装的?你在哪里运行Python?从命令提示符、终端还是在某个IDE中?您是通过服务器还是云运行它?您是否在笔记本电脑上运行它?或者在学校的实验室里可能有防火墙?你在哪里运行python脚本?您的目录中是否有任何其他文件名调用
nltk.py
?升级到nltk 3.2后,您是否使用了
AP\u MODEL\u LOC='文件:'+str(find('taggers/averaged\u perceptron\u tagger/'+PICKLE))
hack?很抱歉,您的简短评论不足以帮助我们调试问题,请回答前两条评论中的每一个问题,我们将在之后尝试找到解决方案。事实上,如果你问另一个问题,并在评论中陈述这些问题的所有答案,也会更容易,看起来这是另一个问题。