gpt4 book ai didi

python - 从 Gensim 维基语料库打印维基百科文章标题

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:43 25 4
gpt4 key购买 nike

我相信我的问题很简单,但我是 python 的新手,我觉得这让我有点蒙蔽。

我已经按照“准备语料库”中的说明下载了维基百科转储:https://radimrehurek.com/gensim/wiki.html .然后我运行了以下代码行:

import gensim

# these next two lines take around 16 hours
wikiDocs = gensim.corpora.wikicorpus.WikiCorpus('enwiki-latest-pages-articles.xml.bz2')
gensim.corpora.MmCorpus.serialize('wiki_en_vocab200k', wikiDocs)

这些代码行取自上面的链接。现在,我在一个单独的脚本中做了一些文本分析。该文本分析的结果是一个数字,代表维基文档语料库中特定文章的索引。问题是,我不知道如何打印出那篇文章的正文。显而易见的尝试是:

wikiDocs[index_of_article]

但是返回错误

TypeError: 'WikiCorpus' object does not support indexing

我已经尝试了一些其他的东西,但我被卡住了。感谢您的帮助。

最佳答案

这实际上不是一个简单的问题,它不起作用的原因是 WikiCorpus 不是迭代器,它只是一个具有一些用于保存和加载的函数的类。您可以看到购买输入 WikiCorpus. 并按 TAB 进入 IPython 的功能(这显示了 TAB 完成的选项:

In [8]: wikiDocs = gensim.corpora.wikicorpus.WikiCorpus.
gensim.corpora.wikicorpus.WikiCorpus.get_texts gensim.corpora.wikicorpus.WikiCorpus.load gensim.corpora.wikicorpus.WikiCorpus.save_corpus
gensim.corpora.wikicorpus.WikiCorpus.getstream gensim.corpora.wikicorpus.WikiCorpus.save

看起来我们想要get_texts,这可能会返回一个迭代器而不是一个列表,(迭代器也不直接支持索引)所以你必须使用

list(wikidocs.get_texts())[i]

from itertools import islice
next(islice(wikidocs.get_texts(),i,i+1))

关于python - 从 Gensim 维基语料库打印维基百科文章标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35591567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com