gpt4 book ai didi

python - 如何在 nltk 中将自定义语料库添加到本地计算机

转载 作者:行者123 更新时间:2023-11-30 22:42:20 24 4
gpt4 key购买 nike

我有一个使用数据创建的自定义语料库,我需要对其进行一些分类。我的数据集与 movie_reviews 语料库包含的格式相同。根据 nltk 文档,我使用以下代码来访问 movie_reviews 语料库。无论如何,是否可以将任何自定义语料库添加到 nltk_data/corpora 目录并像访问现有语料库一样访问该语料库。

    import nltk
from nltk.corpus import movie_reviews

documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]

最佳答案

虽然您可以破解 nltk 以使您的语料库看起来像内置的 nltk 语料库,但这是错误的方法。 nltk 提供了丰富的“语料库阅读器”集合,您可以使用它们从保存它们的任何位置读取语料库,而无需将它们移动到 nltk_data 目录或破解 nltk源。 nltk 自己的语料库在幕后使用相同的语料库阅读器,因此您的阅读器将拥有等效内置语料库的所有方法和行为。

让我们看看movie_reviews语料库是如何在nltk/corpora/__init__.py中定义的:

movie_reviews = LazyCorpusLoader(
'movie_reviews', CategorizedPlaintextCorpusReader,
r'(?!\.).*\.txt', cat_pattern=r'(neg|pos)/.*',
encoding='ascii')

您可以忽略LazyCorpusLoader部分;它用于提供您的程序很可能永远不会使用的语料库。其余部分显示,电影评论语料库是使用 CategorizedPlaintextCorpusReader 读取的,其文件全部以 .txt 结尾,并且评论通过子目录进行分类posneg。最后,语料库编码为ascii。因此,像这样定义您自己的语料库(根据需要更改值):

mycorpus = nltk.corpus.reader.CategorizedPlaintextCorpusReader(
r"/home/user/path/to/my_corpus",
r'(?!\.).*\.txt',
cat_pattern=r'(neg|pos)/.*',
encoding="ascii")

就是这样;您现在可以调用 mycorpus.words()mycorpus.sents(categories="neg") 等,就像这是 nltk 提供的语料库一样。

关于python - 如何在 nltk 中将自定义语料库添加到本地计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42176699/

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