从Python中的列表列表创建集合的内存高效方式



我有一个列表列表,其中每个内部列表都是一个标记文本,所以它的长度是文本中的字数。

corpus = [['this', 'is', 'text', 'one'], ['this', 'is', 'text', 'two']]

现在,我想创建一个集合,其中包含语料库中的所有唯一令牌。对于上面的例子,期望的输出是:

{'this', 'is', 'text', 'one', 'two}

目前,我有:

all_texts_list = list(chain(*corpus))
vocabulary = set(all_texts_list)

但这似乎是一种记忆效率低下的方式

有没有更有效的方法来获得这个集合?


我找到了这个链接。然而,他们希望在那里找到唯一列表集,而不是列表中的唯一元素集。

您可以使用带有setupdate操作的简单for循环。

vocabulary = set()
for tokens in corpus:
vocabulary.update(tokens)

输出:

{'this', 'one', 'text', 'two', 'is'}