Поиск пути для корпуса в NLTK

Я использую Natural Language Toolkit для Python для написания программы. В нем я пытаюсь загрузить корпус собственных файлов. Для этого я использую следующий код:

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

Допустим, мой файл называется reader.py, а мой корпус файлов находится в каталоге с именем 'corpus' в том же каталоге, что и reader.py. Я хотел бы знать способ обобщить поиск указанного выше пути к файлу, чтобы мой код мог найти путь к каталогу «corpus» для любого места для любого, кто использует код. Я пробовал эти сообщения, но они позволяют мне получить только абсолютные пути к файлам: Найти текущий каталог и каталог файла

Любая помощь будет принята с благодарностью!


person MEric    schedule 27.06.2013    source источник


Ответы (2)


Насколько я понимаю

  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. Взгляните на документацию, чтобы найти официальную документацию.

person arturomp    schedule 27.06.2013

C:\Users\UserName\AppData\Roaming\nltk_data\corpora

Я использовал платформу Anaconda со средой conda... местоположение моего корпуса

person Kiran Maharjan    schedule 01.06.2018
comment
Это действительно отвечает на вопрос? - person Vega; 01.06.2018