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的字符串部分的主要内容,如果未能解决你的问题,请参考以下文章

python 如何使用nltk生成ngrams

构建基于计数的分布模型时,长度为 5 的 ngram 的数据结构选择

PackagesNotFoundError:当前频道不提供以下软件包(ngram)

了解 sklearn 中 CountVectorizer 中的“ngram_range”参数

python打开txt文件 并且对这个txt文件中的内容进行ngram分词 已有分词代码如下图且运

机器学习笔记 NLP ngram