0

我正在研究以下列表理解,它应该将(文档,类别)元组列表转换为(段落列表),类别)元组转换为((句子列表),(句子列表),类别)元组.

每个 (document, category) 元组被拆分为 (paragraph-list), category) 元组,然后进入 4 级深度(文档 -> 段落 -> 句子 -> 单词)。

Spyder 说它有语法错误。请问有什么帮助吗?

最终的想法是将文档分成段落、句子
、单词,按照以下层次结构:
Doc-List

(Doc1, cat), (Doc2, cat), (Doc3, cat)
(doc1sent1, doc1sent2, doc1sent3), cat)
((sent1word1, sent1word2, sent1word3), (sent2word1, sent2word2), cat) ...

self._PSW =       
[[list(self.ConvertOneDoc(paragraph, "Sents")     
for paragraph in [list((self.ConvertOneDoc(document, "Para"), category))    
for document, category in self._CatDocs]]    
4

1 回答 1

0

有点晚了,但答案...

你错过了一个括号来关闭第一个列表 `list(...)̀ 并且你有一个多余的左方括号。尝试:

self._PSW = [
    list(self.ConvertOneDoc(paragraph, "Sents"))     
    for paragraph in [
            list((self.ConvertOneDoc(document, "Para"), category))    
            for document, category in self._CatDocs
        ]
    ]

现在,您的代码有点晦涩,但您的意图似乎很明确。据我了解,您需要嵌套的内容,例如,每个文档:( ([[words]], category)words一个句子,[words]一个段落和[[words]]一个文档)。这是一个尝试修复它:

self._PSW = [
    ([
        [
            self.ConvertOneDoc(sentence, "Word") 
            for sentence in self.ConvertOneDoc(paragraph, "Sent")
        ]
        for paragraph in self.ConvertOneDoc(document, "Para") 
    ], category)
    for document, category in self._CatDocs
]
于 2018-05-11T18:19:36.847 回答