假设我有这样一段文字:
'he is hdajs asdas da he is not asd as da s i am a da daas you am a'
我已经根据这段文字创建了所有的大字:
>>> bigrams_
[('he', 'is'), ('is', 'hdajs'), ('hdajs', 'asdas'), ('asdas', 'da'), ('da', 'he'), ('he', 'is'), ('is', 'not'), ('not', 'asd'), ('asd', 'as'), ('as', 'da'), ('da', 's'), ('s', 'i'), ('i', 'am'), ('am', 'a'), ('a', 'da'), ('da', 'daas'), ('daas', 'you'), ('you', 'am'), ('am', 'a')]
现在我想创建一个新的bigram列表,其中每个bigram的第一个元素将是一个位置索引,它显示从上述格式到文本中某个点的某个bigram被看到了多少次,第二个元素将是来自初始列表的单词的bigram。例如,在上面的列表中,最后一个元素('am', 'a')
已经出现了2次,因此在新列表中,它将对应于这个bigram:(2, ('am', 'a'))
。
这是一个简洁的python方法。你知道吗
我喜欢基于@JonClements itertools
count
的解决方案(+1),但我不认为defaultdict
是必要的:输出
你可以试试这个:
输出:
您可以使用默认值为
count
的defaultdict
对象,并逐步获取该键计数器的next
值,例如:给你:
相关问题 更多 >
编程相关推荐