2017-01-15 15 views
6

Tôi đã cài đặt gensim (thông qua pip) bằng Python. Sau khi cài đặt kết thúc, tôi nhận được cảnh báo sau:Cảnh báo chunkize khi cài đặt gensim

C: \ Python27 \ lib \ site-packages \ gensim \ utils.py: 855: UserWarning: đã phát hiện Windows; răng cưa chunkize để chunkize_serial warnings.warn ("phát hiện Windows; aliasing chunkize để chunkize_serial")

Làm thế nào tôi có thể khắc phục điều này?

Tôi không thể nhập word2vec từ gensim.models do cảnh báo này.

Tôi có các cấu hình sau: Python 2.7, gensim-0.13.4.1, numpy-1.11.3, scipy-0.18.1, pattern-2.6.

Trả lời

12

Bạn có thể ngăn chặn các tin nhắn với mã này trước nhập khẩu gensim:

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

import gensim 
+0

Xin chào! @ Roland, Thnx. làm việc của nó bây giờ – user7420652

+0

@ user7420652 Xin chào, cảm ơn bạn đã trả lời và rất vui được biết! Stack Overflow hoạt động như thế: thay vì bình luận (trừ khi bạn muốn thêm thông tin), bạn có thể upvote câu trả lời hữu ích và nếu vấn đề được giải quyết, hãy chọn một trong các câu trả lời là "giải pháp" bằng cách nhấp vào dấu kiểm bên trái của câu trả lời đó. –

12

Tôi nghĩ đó không phải là vấn đề lớn. gensim chỉ cho bạn biết rằng họ sẽ bí danh chunkize đến chức năng khác nhau gây ra bạn sử dụng os cụ thể.

kiểm tra mã của 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

Tôi đã chỉnh sửa câu hỏi của tôi. khi tôi viết: từ gensim.models import word2vec, tôi nhận được cảnh báo chunkize. – user7420652

+0

Xin chào! @Dongmin Pete Shin, mọi thứ đang hoạt động tốt. thnx cho sự giúp đỡ. – user7420652

Các vấn đề liên quan