嵌套列表 - 改变嵌套列表的结构(减少嵌套)

Nested lists - changing the structure of a nested list (nesting reduction)

所以我目前正在学习如何预处理文本,不幸的是,由于“解压的值太多”,我运行在提取过程中遇到了错误。我认为问题是由于函数当前如何输出我的列表。

我的目标是将一个句子中的每个单词作为一个列表的一部分,一个包含所有句子的列表。

目前,如果我打印 training_data[0],输出是:

[[('B-Actor', 'steve_PRPVBP'), ('I-Actor', 'mcqueen_VBN'), ('O', 'provided_VBN'), ('O', 'a_DT'), ('B-Plot', 'thrilling_NN'), ('I-Plot', 'motorcycle_NN'), ('I-Plot', 'chase_NN'), ('I-Plot', 'in_IN'), ('I-Plot', 'this_DT'), ('B-Opinion', 'greatest_JJS'), ('I-Opinion', 'of_IN'), ('I-Opinion', 'all_DT'), ('B-Plot', 'ww_NNP'), ('I-Plot', '2_NNP'), ('I-Plot', 'prison_NNP'), ('I-Plot', 'escape_NN'), ('I-Plot', 'movies_NNS')]]

有什么方法可以重组我的列表,以便我只得到 [()] 作为输出,我相信我目前有 1 个太多的嵌套列表。下面是我想要的输出的片段:

[('B-Actor', 'steve_PRPVBP'), ('I-Actor', 'mcqueen_VBN'), ('O', 'provided_VBN'), ('O', 'a_DT'), ('B-Plot', 'thrilling_NN'), ('I-Plot', 'motorcycle_NN'), ('I-Plot', 'chase_NN'), ('I-Plot', 'in_IN'), ('I-Plot', 'this_DT'), ('B-Opinion', 'greatest_JJS'), ('I-Opinion', 'of_IN'), ('I-Opinion', 'all_DT'), ('B-Plot', 'ww_NNP'), ('I-Plot', '2_NNP'), ('I-Plot', 'prison_NNP'), ('I-Plot', 'escape_NN'), ('I-Plot', 'movies_NNS')]

为了提供更多上下文,目前正在使用以下测试:

print(len(training_data))
print(len(training_data[0]))
print(len(training_data[0][0]))

我得到以下输出:

7816
1
17

我希望能够访问我的列表,使上面的输出为:

7816
17
2

使用 itertools

中的 from_iterables
import itertools

flat_list = [list(itertools.chain.from_iterable(l)) for l in training_data]