嵌套列表 - 改变嵌套列表的结构(减少嵌套)
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]
所以我目前正在学习如何预处理文本,不幸的是,由于“解压的值太多”,我运行在提取过程中遇到了错误。我认为问题是由于函数当前如何输出我的列表。
我的目标是将一个句子中的每个单词作为一个列表的一部分,一个包含所有句子的列表。
目前,如果我打印 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]