我想在多线程环境中访问^{synsets()
这样的方法就会失败。如果我禁用它,一切正常
错误消息将更改。例如,一个错误可能如下所示,在我看来非常像一个竞争条件:
File "/home/lhk/anaconda3/envs/dlab/lib/python3.6/site-packages/nltk/corpus/reader/wordnet.py", line 1342, in synset_from_pos_and_offset
assert synset._offset == offset
关于这一点,还有其他问题:
这里的问题也是由多线程引起的:What would cause WordNetCorpusReader to have no attribute LazyCorpusLoader?
这个问题有一个更一般的标题,但似乎描述了相同的问题(多线程语料库加载失败):Python NLTK multi threading
第一个链接问题的解决方案是在程序分支到各个线程之前加载语料库。我已经这样做了:wordnet.ensure_loaded()
在多线程之前被调用
GitHub问题中的建议是在我的线程函数中导入wordnet。但这并没有改变任何事情
一种解决方法是为每个线程制作语料库的深度副本。当然,这需要大量内存,而且效率不高:
相关问题 更多 >
编程相关推荐