python:依次选择类似于ngram CODE DEMO的字符串部分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:依次选择类似于ngram CODE DEMO的字符串部分相关的知识,希望对你有一定的参考价值。
这是我要解决的问题。
例如,有此字符串
my_string = 'jan feb mar'
而且我希望在列表中依次生成这样的项目。字符串中的单词总是可以用''分割的。
my_function(my_string) output = ['jan', 'jan feb', 'jan mar', 'jan feb mar', 'feb','feb mar','mar']
我尝试过的东西在下面,这不是我想要的。
my_string = "jan feb mar" words_list = my_string.split(' ') words = [' '.join(words_list[i:i+n]) for i in range(len(words_list) - n+1)] words.extend(input_list)
请在这里帮助我。谢谢。
这是我要解决的问题。例如,有一个字符串my_string ='jan feb mar',并且我希望在列表中依次生成这样的项目。 ...
这样的事情怎么样?只需创建用于排序的查找
考虑这些组合的一种好方法是二进制计数。给定类似['jan', 'feb', 'mar']
的列表,您可以认为您的每个选择都被二进制数字掩盖。例如,110
将对应于jan feb
。由于您正在寻找所有组合,因此您可以简单地从1到组合的数量进行计数,并使用二进制数字来掩盖选择。这使得解决方案非常简洁:
您想要的是所有大小(1、2和3)的所有combinations
,组合保持顺序(排列以每个顺序进行组合)
使用CODE DEMO
['jan', 'feb', 'mar', 'jan feb', 'jan mar', 'feb jan', 'feb mar', 'mar jan', 'mar feb', 'jan feb mar', 'jan mar feb', 'feb jan mar', 'feb mar jan', 'mar jan feb', 'mar feb jan']
在我看来是最好的,但这是对它的另一种充分衡量。这可与带有嵌套循环的Mark's way配合使用,以根据OP的规范重新组织输出。我将返回发电机,但是不幸的是,大部分工作都在前面。
以上是关于python:依次选择类似于ngram CODE DEMO的字符串部分的主要内容,如果未能解决你的问题,请参考以下文章
构建基于计数的分布模型时,长度为 5 的 ngram 的数据结构选择
PackagesNotFoundError:当前频道不提供以下软件包(ngram)
了解 sklearn 中 CountVectorizer 中的“ngram_range”参数