J'ai installé gensim (via pip) en Python. Une fois l'installation terminée, j'obtiens l'avertissement suivant:
C:\Python27\lib\site-packages\gensim\utils.py: 855: UserWarning: Windows détecté; aliasing chunkize vers chunkize_serial warnings.warn ("Windows détecté; aliasing chunkize vers chunkize_serial")
Comment puis-je rectifier cela?
Je ne parviens pas à importer Word2vec à partir de gensim.models en raison de cet avertissement.
J'ai les configurations suivantes: Python 2.7, gensim-0.13.4.1, numpy-1.11.3, scipy-0.18.1, pattern-2.6.
Vous pouvez supprimer le message avec ce code avant importation de gensim:
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
import gensim
Je pense que ce n'est pas un gros problème. Gensim vous fait juste savoir qu'il alias se fragmentera en fonction différente car vous utilisez un système d'exploitation spécifique.
Découvrez ce code depuis 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