Python 确定列表中单词连贯模式的有效方法

Python 确定列表中单词连贯模式的有效方法,python,Python,假设我将这些短语存储在单词列表中: ** school education high support level --> support education high school level support ** school education high support level --> support education high school level level education ** school education high support level

假设我将这些短语存储在单词列表中:

** school education high support level -->    support education high school level support
** school education high support level -->    support education high school level level education
** school education high support level -->    education high school level support education school
** school education high support level -->    support education high school level support
比较列表元素并选择与所有成员最相似的模式的最有效方法是什么

[['support', 'education', 'high', 'school', 'level', 'support'],
['support', 'education', 'high', 'school', 'level', 'level', 'education'],
['education', 'high', 'school', 'level', 'support', 'education', 'school'],
['support', 'education', 'high', 'school', 'level', 'support']]
---屈服

[支持、教育、高中、学校、级别]

更新

感谢您的评论和反馈。我含糊其辞,它被认为不是一个“真正的问题”,尽管我认为更准确的说法是,它不是一个完全明确的问题

(1) 肯定希望保持单词的顺序

(2) 标准比仅仅保留所有元素的集合要复杂一些(即集合(a)和集合(B)不是我真正想要的)

(3) 更像是“大部分存在的所有元素的集合”,这个词大部分被定义为一些可调整的参数,比如60%的情况下存在,或者70%

我可以写我自己的函数(我也写了),但它很慢而且很好斗。我认为收集、itertools或类似模块中必须有一些技巧才能更快地获取此解决方案。就像有一次我学习了Collections.Counter()一样,我的函数切换了,速度快得多。我知道有一个“bag”或“multiset”选项,但没有用它来处理模糊集的概念,模糊集的成员资格是由存在于许多事物示例中的概率来定义的


这就是为什么我要求——对这些策略提供反馈和见解。

根据什么确定相似性?您可以使用集合。计数或在所有列表上使用集合……这可能很有用。昨天有人问。你的标准不清楚。看起来您正在查找列表列表中最常见的子列表。但是,在这种情况下,为什么不选择出现在所有四个选项中的
[“教育”、“高中”、“学校”、“级别”]
(与您的答案不同),或者选择出现在所有选项中的
[“教育”、“高中”、“级别”、“支持”]
出现在其中的三种模式中?如果您对它们出现的顺序感兴趣,您可能需要类似于……每个模式是否必须对齐才能相似?