如何解决Polyglot Text(i).morphemes 给出 HTTP 错误
在 jupyter 中安装多语言后,我正在运行以下代码:
import polyglot
from polyglot.text import Text,Word
from polyglot.detect import Detector
h_proc = cleaned_text['text']
words = []
for words in h_proc[:50]:
for word in words:
pglot = Text(word)
words.append(pglot.morphemes)
words
我在 words.append(pglot.morphemes)
处收到错误消息:
HTTPError Traceback (most recent call last)
<ipython-input-25-08d428bde3b6> in <module>
12 for word in words:
13 pglot = Text(word)
---> 14 words.append(pglot.morphemes)
15
16 words
~\anaconda3\lib\site-packages\polyglot\decorators.py in __get__(self,obj,cls)
18 if obj is None:
19 return self
---> 20 value = obj.__dict__[self.func.__name__] = self.func(obj)
21 return value
22
~\anaconda3\lib\site-packages\polyglot\text.py in morphemes(self)
111 @cached_property
112 def morphemes(self):
--> 113 words,score = self.morpheme_analyzer.viterbi_segment(self.raw)
114 return WordList(words,language=self.language.code,parent=self)
115
~\anaconda3\lib\site-packages\polyglot\decorators.py in __get__(self,cls)
18 if obj is None:
19 return self
---> 20 value = obj.__dict__[self.func.__name__] = self.func(obj)
21 return value
22
~\anaconda3\lib\site-packages\polyglot\text.py in morpheme_analyzer(self)
102 @cached_property
103 def morpheme_analyzer(self):
--> 104 return load_morfessor_model(lang=self.language.code)
105
106 def transliterate(self,target_language="en"):
~\anaconda3\lib\site-packages\polyglot\decorators.py in memoizer(*args,**kwargs)
28 key = tuple(list(args) + sorted(kwargs.items()))
29 if key not in cache:
---> 30 cache[key] = obj(*args,**kwargs)
31 return cache[key]
32 return memoizer
~\anaconda3\lib\site-packages\polyglot\load.py in load_morfessor_model(lang,version)
126 """
127 src_dir = "morph{}".format(version)
--> 128 p = locate_resource(src_dir,lang)
129 file_handler = _open(p)
130 tmp_file_ = NamedTemporaryFile(delete=False)
~\anaconda3\lib\site-packages\polyglot\load.py in locate_resource(name,lang,filter)
45 p = path.join(polyglot_path,task_dir,lang)
46 if not path.isdir(p):
---> 47 if downloader.status(package_id) != downloader.INSTALLED:
48 raise ValueError("This resource is available in the index "
49 "but not downloaded,yet. Try to run\n\n"
~\anaconda3\lib\site-packages\polyglot\downloader.py in status(self,info_or_id,download_dir)
735 """
736 if download_dir is None: download_dir = self._download_dir
--> 737 info = self._info_or_id(info_or_id)
738
739 # Handle collections:
~\anaconda3\lib\site-packages\polyglot\downloader.py in _info_or_id(self,info_or_id)
505 def _info_or_id(self,info_or_id):
506 if isinstance(info_or_id,unicode):
--> 507 return self.info(info_or_id)
508 else:
509 return info_or_id
~\anaconda3\lib\site-packages\polyglot\downloader.py in info(self,id)
927 if id in self._packages: return self._packages[id]
928 if id in self._collections: return self._collections[id]
--> 929 self._update_index() # If package is not found,most probably we did not
930 # warm up the cache
931 if id in self._packages: return self._packages[id]
~\anaconda3\lib\site-packages\polyglot\downloader.py in _update_index(self,url)
829 elif source == 'mirror':
830 index_url = path.join(self._url,'index.json')
--> 831 data = urlopen(index_url).read()
832
833 if six.PY3:
~\anaconda3\lib\urllib\request.py in urlopen(url,data,timeout,cafile,capath,cadefault,context)
220 else:
221 opener = _opener
--> 222 return opener.open(url,timeout)
223
224 def install_opener(opener):
~\anaconda3\lib\urllib\request.py in open(self,fullurl,timeout)
529 for processor in self.process_response.get(protocol,[]):
530 meth = getattr(processor,meth_name)
--> 531 response = meth(req,response)
532
533 return response
~\anaconda3\lib\urllib\request.py in http_response(self,request,response)
638 # request was successfully received,understood,and accepted.
639 if not (200 <= code < 300):
--> 640 response = self.parent.error(
641 'http',response,code,msg,hdrs)
642
~\anaconda3\lib\urllib\request.py in error(self,proto,*args)
561 http_err = 0
562 args = (dict,meth_name) + args
--> 563 result = self._call_chain(*args)
564 if result:
565 return result
~\anaconda3\lib\urllib\request.py in _call_chain(self,chain,kind,meth_name,*args)
500 for handler in handlers:
501 func = getattr(handler,meth_name)
--> 502 result = func(*args)
503 if result is not None:
504 return result
~\anaconda3\lib\urllib\request.py in http_error_302(self,req,fp,headers)
753 fp.close()
754
--> 755 return self.parent.open(new,timeout=req.timeout)
756
757 http_error_301 = http_error_303 = http_error_307 = http_error_302
~\anaconda3\lib\urllib\request.py in open(self,*args)
567 if http_err:
568 args = (dict,'default','http_error_default') + orig_args
--> 569 return self._call_chain(*args)
570
571 # XXX probably also want an abstract factory that kNows when it makes
~\anaconda3\lib\urllib\request.py in _call_chain(self,meth_name)
--> 502 result = func(*args)
503 if result is not None:
504 return result
~\anaconda3\lib\urllib\request.py in http_error_default(self,hdrs)
647 class HTTPDefaultErrorHandler(BaseHandler):
648 def http_error_default(self,hdrs):
--> 649 raise HTTPError(req.full_url,hdrs,fp)
650
651 class HTTPRedirectHandler(BaseHandler):
HTTPError: HTTP Error 403: Forbidden
我不知道为什么我会得到这个,而且这个错误似乎没有太多背景。
我使用以下代码在我的 Windows 电脑上安装了多语言:
!pip install pycld2-0.41-cp38-cp38-win_amd64.whl
!pip install PyICU-2.7.2-cp38-cp38-win_amd64.whl
!pip install Morfessor-2.0.6-py3-none-any.whl
!git clone https://github.com/aboSamoor/polyglot
!pip install -r polyglot\requirements.txt
!pip install polyglot
请帮忙!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。