在Python中,我正在编写一个自然语言处理模块,但不知道如何编写以下函数。输入:从输入句子中派生的词性(POS)列表,作为短字符串。 列表中的某些项本身是列表,因为该程序部分不知道在两个或多个可能性中选择哪个词性。例如,特定的六个单词的句子结果为
因此,输入为
["DET", "NOUN", ["VERB", "NOUN"], "CONJ", ["ADJ", "ADV", "NOUN"], "ADV"]
。 即第一个单词绝对是DET,第二个单词绝对是NOUN,第三个单词可以是VERB或NOUN,第四个单词绝对是CONJ,第五个单词可以是ADJ,ADV或NOUN,第六个单词绝对是ADV。因此,输入为
["DET", "NOUN", ["VERB", "NOUN"], "CONJ", ["ADJ", "ADV", "NOUN"], "ADV"]
我需要函数将每个可能的组合作为列表返回。 因此,以上内容的返回值应为:[["DET", "NOUN", "NOUN", "CONJ", "NOUN", "ADV"],
["DET", "NOUN", "NOUN", "CONJ", "ADV", "ADV"],
["DET", "NOUN", "NOUN", "CONJ", "ADJ", "ADV"],
["DET", "NOUN", "VERB", "CONJ", "NOUN", "ADV"],
["DET", "NOUN", "VERB", "CONJ", "ADV", "ADV"],
["DET", "NOUN", "VERB", "CONJ", "ADJ", "ADV"]]
这些句子可能由一个到n个单词组成。每个单词可能有一个到n个词性。