- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在努力学习使用 NLTK在 python 中打包。特别是,我需要在 NLTK 中使用 penn tree bank 数据集。据我所知,如果我调用 nltk.download('treebank')
我可以获得数据集的 5%。但是,我在 tar.gz 文件中有一个完整的数据集,我想使用它。在 here据说:
If you have access to a full installation of the Penn Treebank, NLTK can be configured to load it as well. Download the ptb package, and in the directory nltk_data/corpora/ptb place the BROWN and WSJ directories of the Treebank installation (symlinks work as well). Then use the ptb module instead of treebank:
因此,我从终端打开 python,导入 nltk 并输入 nltk.download('ptb')
。使用此命令,“ptb”目录已在我的 ~/nltk_data
目录下创建。最后,现在我有了 ~/nltk_data/ptb
目录。在里面,正如我在上面给出的链接中所建议的那样,我已经放置了我的数据集文件夹。所以这是我最终的目录层次结构。
$: 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的所有文件夹中,都有wsj_0001.mrg、wsj_0002.mrg
等.mrg
文件。
现在,让我们回到我的问题。同样,根据 here :
如果我编写以下内容,我应该能够获取文件 ID:
>>> 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())
时,我得到的是空数组。
>>> print(ptb.fileids())
[]
有没有人可以帮助我?
编辑这是我的 ptb 目录和一些 allcats.txt 文件的内容:
$: 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 ..
最佳答案
PTB 语料库阅读器需要大写目录和文件名(正如您在问题中包含的 allcats.txt
的内容所暗示的)。这与使用小写字母的 Penn Treebank 的许多发行版冲突。
对此的快速修复是将文件夹 wsj
和 brown
及其内容重命名为大写。您可以为此使用的 UNIX 命令是:
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
(从 this question 获得)。它会递归地将目录和文件名更改为大写。
关于python - 我怎么能在 python/nltk 中使用完整的 penn treebank 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36079383/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
我正在寻找处理 Penn Treebank 结构的 Python 数据结构。这是 Treebank 的样例: ( (S (NP-SBJ (PRP He) ) (VP (VBD shou
说我有一句话: After he had eaten the cheese, Bill went to the grocery. 在我的程序中,我得到以下输出: ---PARSE TREE--- (R
我已经下载了 UPDT波斯语树库( Uppsala Persian Dependency Treebank ),我正在尝试使用斯坦福 NLP 从中构建依赖解析器模型。我尝试使用命令行和 Java 代码
我最初使用的是来自 NLTK 的以下 Penn Treebank 标记器: POS_Tagger = UnigramTagger(treebank.tagged_sents(), backoff=De
我正在专门寻找一些数据结构、枚举或生成过程,通过它们在内部表示不同的词性。我花了很长时间扫描了一段时间的Javadoc和源代码,找不到我要找的东西。如果可能的话,我想直接访问标签的集合,如果它们存储在
我正在寻找一个端口为 this 的 Perl 模块我基本上可以在其中创建一个对象,调用一个 tokenize() 子例程,传入一堆文本并取回一个标记列表。达到那种效果的东西。如果它不存在我会做,但重新
我知道 Treebank 语料库已经被标记了,但与 Brown 语料库不同,我不知道如何获得标签字典。例如, >>> from nltk.corpus import brown >>> wordcou
Penn Treebank tagset有一个单独的标签 TO对于单词“to”,无论它是用于介词意义(例如 I went to school )还是不定式意义(例如 I want to eat )。从
我有来自 OpenNLP 的 POS 标记输入...我需要将这些与 WordNet 一起使用...但 wordnet 仅使用 4 个标签 - 名词、动词、形容词、副词...其中 OpenNLP 根据
我正在使用 OpenIE来自斯坦福 NLP 库的工具,用于从句子中获取最少的从句。以下是我到目前为止的想法(主要是从他们的演示代码中获得灵感): public static void main(Str
我正在努力学习使用 NLTK在 python 中打包。特别是,我需要在 NLTK 中使用 penn tree bank 数据集。据我所知,如果我调用 nltk.download('treebank')
我对 NLTK 和 Python 还很陌生。我一直在使用示例中给出的玩具语法创建句子解析,但我想知道是否有可能使用从 Penn Treebank 的一部分学习的语法,而不是仅仅编写我自己的或使用玩具语
我是一名优秀的程序员,十分优秀!