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

** 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)该标准比仅保留存在的所有元素的集合要复杂得多(即set(A)和set(B)不是我真正想要的)

(3)更像是“大部分存在的所有元素的集合”,其中单词多数被定义为某个可调参数,例如60%的情况或70%的情况...

我可以编写自己的函数(确实如此),但是它很慢而且很繁琐。 我认为必须有一些来自集合或itertools或类似模块的技巧才能更快地获取此解决方案。 就像曾经了解Collections.Counter()一样,我的函数进行了切换,变得更快。 我知道有一个“ bag”或“ multiset”选项,但没有用它来处理模糊集的概念,其中隶属度是由事物的许多示例中都存在的概率定义的。

这就是为什么我要-征求关于这些方针的反馈和见解。

  ask by Marc Maxmeister translate from so

本文未有回复,本站智能推荐: