【问题标题】:segmenting elements in a list and find their statistics分割列表中的元素并找到它们的统计信息
【发布时间】:2022-11-11 00:55:41
【问题描述】:

你能帮我吗,我该如何解决这个问题。

给定以下列表,我想找到 ENG 段。 ENG 段是列表中的组 ENG 元素。我也想找到段长度,即段中的单词数。例如:

list1 = ['ENG', 'ENG', 'ENG', 'ENG', 'ENG', 'TSO', 'ENG', 'ENG']

在列表中,我们有两个 ENG 段,即

ENG_segments = [['ENG', 'ENG', 'ENG', 'ENG', 'ENG'],['ENG', 'ENG']]

长度为 3 的 ENG 段:有 3 个或更多单词

length3 = 1

长度为 2 的段:有 2 个单词

length2 = 1

长度为 1 的段:有 1 个单词

length3 = 0

【问题讨论】:

    标签: python list nlp grouping


    【解决方案1】:

    您可以使用itertools.groupby 来识别组,并使用collections.Counter 来计算各个段长度的出现次数:

    >>> from collections import Counter
    >>> import itertools as it
    >>>
    >>> list1 = ['ENG', 'ENG', 'ENG', 'ENG', 'ENG', 'TSO', 'ENG', 'ENG']
    >>>
    >>> Counter(min(len([*g]), 3) for k,g in it.groupby(list1) if k == 'ENG')
    Counter({3: 1, 2: 1})
    

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多