2017-01-15 2 views
6

파이썬에서 gensim (pip를 통해)을 설치했습니다.gensim 설치 중 청크 경고

C : 설치가 나는 다음과 같은 경고 수를 초과 한 후 \ Python27 \ lib 디렉토리의 \ 사이트 - 패키지 \ gensim \ utils.py : 855 : UserWarning : 윈도우를 감지;

어떻게이 문제를 해결할 수 있습니다 앨리어싱 chunkize이 warnings.warn을 chunkize_serial하는 ("chunkize_serial하는 chunkize 별명 윈도우 검색")?

이 경고 때문에 gensim.models에서 word2vec을 가져올 수 없습니다.

필자는 다음과 같은 구성을 가지고 있습니다 : Python 2.7, gensim-0.13.4.1, numpy-1.11.3, scipy-0.18.1, pattern-2.6.

답변

12

의 코드 당신은 gensim을 가져 전에이 코드 로 메시지를 억제 할 수는 :

import warnings 
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim') 

import gensim 
+0

안녕하세요! @ 롤랜드, Thnx. 그 일 이제는 – user7420652

+0

@ user7420652 안녕하세요, 귀하의 회신을 보내 주셔서 감사 드리며 알고 행복! Stack Overflow는 다음과 같이 작동합니다. 주석 처리 대신 (더 많은 정보를 추가하지 않는 한) 도움이되는 답변을 upvote 할 수 있고 문제가 해결되면 왼쪽의 확인 표시를 클릭하여 "해결책"으로 대답을 선택하십시오 그 대답. –

12

큰 문제는 아닌 것 같습니다. gensim은 chunkize를 특정 기능을 사용하는 다른 기능으로 변경한다는 것을 알립니다.

체크 gensim.utils

if os.name == 'nt': 
    logger.info("detected Windows; aliasing chunkize to chunkize_serial") 

    def chunkize(corpus, chunksize, maxsize=0, as_numpy=False): 
     for chunk in chunkize_serial(corpus, chunksize, as_numpy=as_numpy): 
      yield chunk 
else: 
    def chunkize(corpus, chunksize, maxsize=0, as_numpy=False): 
    """ 
    Split a stream of values into smaller chunks. 
    Each chunk is of length `chunksize`, except the last one which may be smaller. 
    A once-only input stream (`corpus` from a generator) is ok, chunking is done 
    efficiently via itertools. 

    If `maxsize > 1`, don't wait idly in between successive chunk `yields`, but 
    rather keep filling a short queue (of size at most `maxsize`) with forthcoming 
    chunks in advance. This is realized by starting a separate process, and is 
    meant to reduce I/O delays, which can be significant when `corpus` comes 
    from a slow medium (like harddisk). 

    If `maxsize==0`, don't fool around with parallelism and simply yield the chunksize 
    via `chunkize_serial()` (no I/O optimizations). 

    >>> for chunk in chunkize(range(10), 4): print(chunk) 
    [0, 1, 2, 3] 
    [4, 5, 6, 7] 
    [8, 9] 

    """ 
    assert chunksize > 0 

    if maxsize > 0: 
     q = multiprocessing.Queue(maxsize=maxsize) 
     worker = InputQueue(q, corpus, chunksize, maxsize=maxsize, as_numpy=as_numpy) 
     worker.daemon = True 
     worker.start() 
     while True: 
      chunk = [q.get(block=True)] 
      if chunk[0] is None: 
       break 
      yield chunk.pop() 
    else: 
     for chunk in chunkize_serial(corpus, chunksize, as_numpy=as_numpy): 
      yield chunk 
+0

내 질문을 편집했습니다. 내가 쓰고있을 때 : gensim.models에서 word2vec을 가져오고, chunkize 경고 메시지가 나타납니다. – user7420652

+0

안녕하세요! @ 신민영, 일이 잘되고 있습니다. 도움을 thnx. – user7420652