2016-07-10 7 views
2

히브리어로 명명 된 엔터티 인식을 위해 다중 언어 패키지를 사용하려고합니다.히브리어에서 명명 된 엔터티 인식을 위해 다중 언어 패키지를 사용합니다.

<class 'polyglot.text.Text'> 
<class 'polyglot.text.Text'> 
[I-LOC([u'france']), I-LOC([u'germany'])] 
Traceback (most recent call last): 
    File "C:/Python27/Lib/site-packages/IPython/core/pyglot.py", line 15, in <module> 
    print(text2.entities) 
    File "C:\Python27\lib\site-packages\polyglot\decorators.py", line 20, in __get__ 
    value = obj.__dict__[self.func.__name__] = self.func(obj) 
    File "C:\Python27\lib\site-packages\polyglot\text.py", line 132, in entities 
    for i, (w, tag) in enumerate(self.ne_chunker.annotate(self.words)): 
    File "C:\Python27\lib\site-packages\polyglot\decorators.py", line 20, in __get__ 
    value = obj.__dict__[self.func.__name__] = self.func(obj) 
    File "C:\Python27\lib\site-packages\polyglot\text.py", line 100, in ne_chunker 
    return get_ner_tagger(lang=self.language.code) 
    File "C:\Python27\lib\site-packages\polyglot\decorators.py", line 30, in memoizer 
    cache[key] = obj(*args, **kwargs) 
    File "C:\Python27\lib\site-packages\polyglot\tag\base.py", line 191, in get_ner_tagger 
    return NEChunker(lang=lang) 
    File "C:\Python27\lib\site-packages\polyglot\tag\base.py", line 104, in __init__ 
    super(NEChunker, self).__init__(lang=lang) 
    File "C:\Python27\lib\site-packages\polyglot\tag\base.py", line 40, in __init__ 
    self.predictor = self._load_network() 
    File "C:\Python27\lib\site-packages\polyglot\tag\base.py", line 109, in _load_network 
    self.embeddings = load_embeddings(self.lang, type='cw', normalize=True) 
    File "C:\Python27\lib\site-packages\polyglot\decorators.py", line 30, in memoizer 
    cache[key] = obj(*args, **kwargs) 
    File "C:\Python27\lib\site-packages\polyglot\load.py", line 61, in load_embeddings 
    p = locate_resource(src_dir, lang) 
    File "C:\Python27\lib\site-packages\polyglot\load.py", line 43, in locate_resource 
    if downloader.status(package_id) != downloader.INSTALLED: 
    File "C:\Python27\lib\site-packages\polyglot\downloader.py", line 738, in status 
    info = self._info_or_id(info_or_id) 
    File "C:\Python27\lib\site-packages\polyglot\downloader.py", line 508, in _info_or_id 
    return self.info(info_or_id) 
    File "C:\Python27\lib\site-packages\polyglot\downloader.py", line 934, in info 
    raise ValueError('Package %r not found in index' % id) 
ValueError: Package u'embeddings2.iw' not found in index 

영어 일이 아니라 히브리어 :

# -*- coding: utf8 -*- 
import polyglot 
from polyglot.text import Text, Word 
from polyglot.downloader import downloader 
downloader.download("embeddings2.iw") 
text = Text(u"in france and in germany") 
print(type(text)) 
text2 = Text(u"נסעתי מירושלים לתל אביב") 
print(type(text2)) 
print(text.entities) 
print(text2.entities) 

이 출력은 다음과 같습니다
이 내 코드입니다.
내가 얻을 u'embeddings2.iw' 여부 패키지 다운로드를 시도 여부 :

ValueError: Package u'embeddings2.iw' not found in index 

답변

3

내가 그것을 얻었다을!
내게 버그 인 것 같습니다.
언어 감지 기능은 히브리어의 이전 ISO 639 언어 코드 인 'iw'으로 언어를 정의했으며 'he'으로 변경되었습니다. text.entitiesiw 코드를 인식하지 않았다, 그래서 내가 그렇게처럼 변경 :

text2.hint_language_code = 'he'