0

我正在使用 Python 的自然语言工具包来编写程序。在其中我试图加载我自己的文件的语料库。为此,我使用代码实现以下效果:

from nltk.corpus import PlaintextCorpusReader
corpus_root=(insert filepath here)
wordlists=PlaintextCorpusReader(corpus_root, '.*')

假设我的文件名为 reader.py,我的文件语料库位于与 reader.py 位于同一目录中的名为“语料库”的目录中。我想知道一种概括查找上述文件路径的方法,以便我的代码可以为任何使用该代码的人找到任何位置的“语料库”目录的路径。我已经尝试过这些帖子,但它们只允许我获取绝对文件路径: 查找当前目录和文件目录

任何帮助将不胜感激!

4

2 回答 2

1

据我了解

  1. 您的reader.py文件和corpus目录始终在同一个目录中
  2. 无论您将它们放在目录结构中的哪个位置,您都corpus在寻找一种引用方式reader.py

在那种情况下,您提到的问题似乎就是您所需要的。另一种方法是在另一个答案中。使用第二个选项,您的代码将是:

from nltk.corpus import PlaintextCorpusReader
import os.path
import sys

basepath = os.path.dirname(__file__)
corpus_root= os.path.abspath(os.path.join(basepath, "corpus"))
wordlists=PlaintextCorpusReader(corpus_root, '.*')

请记住,虽然创建了绝对路径,但它是根据在上述basepath = os.path.dirname(__file__)位中获得的信息创建的,这会产生reader.py的当前目录。查看一些官方文档的文档

于 2013-06-27T18:08:47.020 回答
1
C:\Users\UserName\AppData\Roaming\nltk_data\corpora

我使用了带有 conda 环境的 Anaconda 平台……我的语料库位置

于 2018-06-01T13:28:17.357 回答