2017-12-02 1 views
1

내가 나중에 사용하기 위해 모델을 저장하기 위해 Gensim 문구 클래스에 save method을 사용하고 있지만 내가 Gensim의 내 버전을 업데이트하면, 내가 다시 그 모델을로드하는 문제가있다. 예를 들어, 나는 다음과 같은 오류가 발생합니다 2.2.0에서 만들어진 Gensim 2.3.0 :전달 호환성을 보장하면서 Gensim 모델을 저장하려면 어떻게해야합니까? 모델을로드 할 때

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<timed exec> in <module>() 

~/Stuff/Sources/anaconda3/envs/nlp/lib/python3.6/site-packages/gensim/models/phrases.py in __init__(self, phrases_model) 
    395   self.min_count = phrases_model.min_count 
    396   self.delimiter = phrases_model.delimiter 
--> 397   self.scoring = phrases_model.scoring 
    398   self.phrasegrams = {} 
    399   corpus = pseudocorpus(phrases_model.vocab, phrases_model.delimiter) 

AttributeError: 'Phrases' object has no attribute 'scoring' 

전달 호환성을 보장하는 더 좋은 방법이 있습니까?

답변

1

나는 gensim을 두 번 사용했으며 초보자이지만 Change Log으로 판단하면 scoring attribute was introduced on a Phrases class in 2.3.0입니다.

이제 그것을 저장하고 모델을로드, 하위 호환성이 테이너 유지하려고하는 일이 올 때 내가는 github의 문제에 주목 것과. 그것은 문제가 addressed in 3.1.0했다 "없는 점수"속성처럼 보이는 - 참조 주석과 pull request의 관련 토론 "는 문구 클래스를로드 할 때 이전 버전과의 호환성을 득점". 수정 프로그램의 개념은 기본적으로 load() 메서드를 handle missing attributes and implicitly replacing them with the defaults으로 개선하여 오류로드를 방지하는 것입니다.

2.3.0에서 gensim이 있다고 생각합니다. 여기에서 알 수 있듯이 모델 별 논리는 매우 간단합니다.

경우와 방법은 2.2.0과 2.3.0 사이의 호환 모델을 유지할 수 있는지 아니지만 내가. gensim issue tracker에서 새로운 문제를 열었습니다.

+0

오, 알아두면 좋을 것 같습니다. 나는 3.1.0로 업데이트하지만 지금은 다른 호환성 오류가 있습니다 AttributeError를 '문구'개체가없는 속성 'common_terms'Gensim가에는 이전 호환성을 유지하려는 않는 경우 제안으로 그래서, 난 그냥 버그를 제출합니다. 건배! – Durand

+0

@Durand. 이 토론을 github 문제와 상호 참조하십시오 - 나는 무슨 일이 일어나고 있는지 추적하고 싶습니다. 감사! 내가의 ['로드() '메소드가없는'common_terms' atrribute 처리하지 않습니다]를 볼 수있다 (https://github.com/RaRe-Technologies - – alecxe

+0

은 @Durand 내가 방금 실제 새로운 문제를 발견했다고 생각 /gensim/blob/develop/gensim/models/phrases.py#L465-L497). 모델 로딩 중 '채점'속성으로 처리되어야합니다. – alecxe

관련 문제