首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python/nltk内使用完整的penn树库数据集?

如何在python/nltk内使用完整的penn树库数据集?
EN

Stack Overflow用户
提问于 2016-03-18 08:21:09
回答 1查看 3.9K关注 0票数 10

我正在努力学习如何在python中使用NLTK包。特别是,我需要在NLTK中使用penn树库数据集。据我所知,如果我调用nltk.download('treebank'),我可以得到数据集的5%。但是,我在tar.gz文件中有一个完整的数据集,我想使用它。在这里中,有人说:

如果您可以访问Penn Treebank的完整安装,则可以配置NLTK来加载它。下载ptb包,并在nltk_data/ BROWN /ptb目录中放置Treebank安装的BROWN和WSJ目录(符号链接也可以)。然后使用ptb模块而不是树库:

因此,我从终端打开python,导入nltk并输入nltk.download('ptb')。使用此命令,已在我的~/nltk_data目录下创建了"ptb“目录。最后,我有了~/nltk_data/ptb目录。在那里,正如我在上面给出的链接中所建议的那样,我已经将我的dataset文件夹放了下来。这是我的最后一个目录层次结构。

代码语言:javascript
复制
    $: 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

在所有从00到24的文件夹中,有许多.mrg文件,如wsj_0001.mrg , wsj_0002.mrg等等。

现在,让我回答我的问题。同样,根据这里的说法:

如果我写了以下内容,我应该能够获得文件ids:

代码语言:javascript
复制
>>> 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', ...]

不幸的是,当我输入print(ptb.fileids())时,我得到了空数组。

代码语言:javascript
复制
>>> print(ptb.fileids())
[]

有人能帮我吗?

这里的编辑是ptb目录和一些allcats.txt文件的内容:

代码语言:javascript
复制
   $: 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 ..
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 10:21:39

PTB语料库阅读器需要大写目录和文件名(正如您在问题中包含的allcats.txt内容所暗示的那样)。这与使用小写的Penn Treebank的许多发行版发生了冲突。

解决这个问题的一个快速方法是将文件夹wsjbrown及其内容重命名为大写。您可以为此使用的UNIX命令是:

代码语言:javascript
复制
find . -depth | \
    while read LONG 
    do 
        SHORT=$( basename "$LONG" | tr '[:lower:]' '[:upper:]' )
        DIR=$( dirname "$LONG" ) 
        if [ "${LONG}" != "${DIR}/${SHORT}"  ] 
        then 
            mv "${LONG}" "${DIR}/${SHORT}" 
        fi 
    done

(从这个问题获得)。它将递归地将目录和文件名更改为大写。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36079383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档