- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用数据创建的自定义语料库,我需要对其进行一些分类。我的数据集与 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
结尾,并且评论通过子目录进行分类pos
和 neg
。最后,语料库编码为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/
我是一名优秀的程序员,十分优秀!