У меня есть файл круглых деревьев из корпуса Брауна, который выглядит так:
(TOP (S (NP (NNP Ambassador)
(NNP Stevenson))
(NP (RB yesterday))
(VP (VBD described)
(NP (NP (DT the)
(NNP U.N.))
(POS 's)
(NN problem)
(PP (IN of)
(S (NP (-NONE- *))
(VP (VBG electing)
(NP (DT a)
(ADJP (JJ temporary))
(NN successor)
(PP (TO to)
(NP (DT the)
(ADJP (JJ late))
(NP (NNP Dag)
(NNP Hammarskjold)))))))))
(PP (IN as)
(`` ``)
(NP (NP (DT the)
(ADJP (JJS gravest))
(NN crisis))
(SBAR (-NONE- 0)
(S (NP (DT the)
(NN institution))
(AUX (VBZ has))
(VP (VBN faced)
Я должен извлечь все грамматические правила из этого файла в виде:
S -> NP VP
NP -> DT NNS
VP -> VBD NP
NP -> NN
и т.д.
Я пытаюсь прочитать в скобках дерево как дерево в nltk, но я получаю следующую ошибку:
File "C:\Users\MyName\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\tree.py", line 666, in fromstring cls._parse_error(s, match, 'end-of-string')
Файл "C: \ Users \ MyName \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ nltk \ tree.py", строка 734, в _parse_error
поднять ValueError (msg)
ValueError: Tree.read (): ожидаемый конец строки, но полученный (TOP)
по индексу 24.
"... XT_UNIT) (TOP (S (N ..."
Я хочу использовать продукцию из nltk, но не могу получить этот файл для чтения в виде дерева nltk. Пожалуйста, помогите!