【发布时间】:2026-01-25 06:45:01
【问题描述】:
我已经下载了BLLIP 语料库,并希望将其导入到 NLTK。我发现这样做的一种方法在问题的答案中进行了描述 How to read corpus of parsed sentences using NLTK in python?。在那个答案中,他们正在为一个数据文件做这件事。我想为它们做一个集合。
BLLIP 语料库是由几百万个文件组成的集合,每个文件都包含几个已解析的句子左右。包含数据的主文件夹名为 bllip_87_89_wsj,它包含 3 个子文件夹,1987、1988、1989(每年一个)。在子文件夹1987 中,您有子子文件夹,每个子文件夹都包含许多与已解析句子相对应的文件。子文件夹命名为 w7_001(用于文件夹 1987),文件名为 w7_001.000、w7_001.001 等等。
有了这一切,我的任务如下: 使用 NLTK 解析器顺序读取所有文件。然后,将语料库转换为列表列表,其中每个子列表是一个句子。
第二部分很简单,使用命令corpus_name.sents() 完成。这是我不知道如何处理的任务的第一部分。
欢迎所有建议。我也特别欢迎提出替代、更有效的方法的建议。
更新:
BLLIP语料库的解析句子形式如下:
(S (NP (DT the) (JJ little) (NN dog)) (VP (VBD barked)))
在许多句子中都有(-NONE- *-0) 形式的句法类别,所以当我阅读语料库时*-0 被认为是一个词。有没有办法忽略语法类别-NONE-。例如,如果我有句子
(S (NP-SBJ (-NONE- *-0))
(VP (TO to)
(VP (VB sell)
(NP (NP (PRP$#0 its) (NN TV) (NN station))
(NN advertising)
(NN representation)
(NN operation)
(CC and)
(NN program)
(NN production)
(NN unit))
我希望它变成:
to sell its TV station advertising representation operation and program production unit
不是
*-0 to sell its TV station advertising representation operation and program production unit
目前是什么。
【问题讨论】:
-
Orest,您的“更新”是一个完全不同的问题。你应该单独问。但它实际上是 this question 的副本,您可以在其中找到答案。
标签: python parsing nlp nltk corpus