[我看到一个在阿拉伯语Wikipedia转储上使用Wikicorpus的代码,并且我知道该过程将花费很长时间才能执行,我还四处搜索执行该命令时收到的警告,内容是:
((UserWarning:检测到Windows;将别名块化为chunkize_serialwarnings.warn(“检测到Windows;别名分块为chunkize_serial“))
并且回答说没关系,没什么大不了的,这只是一个警告。但是等了3天左右没有任何反应!我开始怀疑它是否真的对阿拉伯转储文件有效,还是在将阿拉伯转储文件传递给Wikicorpus对象之前必须进行某种预处理?数据大小约为989.6 MB。我用两个打印命令将WikiCorpus代码行包围起来,以了解它何时开始以及何时完成执行,如下所示:
print('start WikiCorpus')
wiki = WikiCorpus(self.in_f)
print('finish WikiCorpus')
其中self.in_f是这样的阿拉伯语Wikipedia转储:(/文件所在的路径/arwiki-20200201-pages-articles.xml.bz2,但在运行时从未到达第二个打印命令。
但是,由于gensim
和大多数相关的Python数据科学库在其他地方进行了更多的开发/测试/使用,因此Windows上的很多事情都变得更难了,并且在Windows上具有多处理的特殊特性。如果您可以选择在其他操作系统上工作,那将使事情变得更容易。
[最近还有一个问题描述了en
转储和WikiCorpus
的类似问题–尽管[问询者]是否解决了问题,但还是有一些需要检查my answer there的想法。
[另外,在Windows中使用依赖于Python multiprocessing
的代码时,可能特别有必要在“主”块中设置代码,如果您的文件被其他人重新导入,则不会重新运行处理,然后调用Windows特定的freeze_support()
函数。参见some recent discussion of a related matter on the gensim project list。