Próbuję nauczyć się przy użyciu pakietu NLTK w Pythona. W szczególności potrzebuję użyć zestawu danych banku drzewek w NLTK. O ile mi wiadomo, jeśli zadzwonię pod numer nltk.download('treebank')
, mogę uzyskać 5% zestawu danych. Jednak mam pełny zestaw danych w pliku tar.gz i chcę go użyć. W here jest powiedziane, że:jak mogę użyć kompletnego zestawu danych drzewa skarbów wewnątrz python/nltk
Jeśli masz dostęp do pełnej instalacji Penn bank drzew, NLTK może być skonfigurowany tak, aby go załadować jak również. Pobierz pakiet ptb, aw katalog nltk_data/corpora/ptb umieść katalogi BROWN i WSJ instalacji Treebank (działają również dowiązania symboliczne). Następnie użyć modułu PTB zamiast bank drzew:
Więc otworzyłam Pythona z terminalu, importowane NLTK i wpisane nltk.download('ptb')
. Za pomocą tego polecenia katalog "ptb" został utworzony pod moim katalogiem ~/nltk_data
. Na końcu mam teraz katalog ~/nltk_data/ptb
. Tam, jak sugerowałem w linku podanym powyżej, umieściłem mój folder datasetu. To jest moja ostatnia hierarchia katalogów.
$: pwd
$: ~/nltk_data/corpora/ptb/WSJ
$: ls
$:00 02 04 06 08 10 12 14 16 18 20 22 24
01 03 05 07 09 11 13 15 17 19 21 23 merge.log
Wewnątrz wszystkie foldery z 00 do 24, istnieje wiele .mrg
pliki takie jak wsj_0001.mrg , wsj_0002.mrg
i tak dalej.
Teraz, zwróć moje pytanie. Ponownie, według here:
powinienem być w stanie uzyskać identyfikatory plików jeśli piszę co nastepuje:
>>> from nltk.corpus import ptb
>>> print(ptb.fileids()) # doctest: +SKIP
['BROWN/CF/CF01.MRG', 'BROWN/CF/CF02.MRG', 'BROWN/CF/CF03.MRG', 'BROWN/CF/CF04.MRG', ...]
Niestety, gdy wpisuję print(ptb.fileids())
mam pustą tablicę.
>>> print(ptb.fileids())
[]
Czy jest ktoś, kto mógłby mi pomóc?
EDIT tutaj jest zawartość mojego katalogu PTB i niektóre allcats.txt pliku:
$: pwd
$: ~/nltk_data/corpora/ptb
$: ls
$: allcats.txt WSJ
$: cat allcats.txt
$: WSJ/00/WSJ_0001.MRG news
WSJ/00/WSJ_0002.MRG news
WSJ/00/WSJ_0003.MRG news
WSJ/00/WSJ_0004.MRG news
WSJ/00/WSJ_0005.MRG news
and so on ..