Я загрузил корпус BLLIP и хочу импортировать его в NLTK. Один из способов, который я нашел для этого, описан в ответе на вопрос Как читать корпус проанализированных предложений с помощью NLTK в 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
который сейчас.