怪异的Bigram问题

时间:2015-02-06 19:58:57

标签: python

我正在与bigrams合作,我有一个问题。我有正确的答案,但格式错误

import nltk
import collections
import collections
from collections import defaultdict

cnt = collections.Counter()

tokens = [['a','b','c','d'],['b','c','a','b','c']]

def bigram(tokens, n):
    for toks in tokens:
        cnt.update(nltk.bigrams(toks))

    return cnt.most_common(n)

print bigram(tokens, 2)

我能够得到正确的输出:[(('b', 'c'), 3), (('a', 'b'), 2)] 但我需要它[(('b c'), 3), (('a b'), 2)]。我问教授我是否可以重新排列参数,但他坚持认为输入必须bigram(tokens, n)才能得到充分的信任。

1 个答案:

答案 0 :(得分:0)

只需使用

return [(" ".join(tup), count) for tup, count in cnt.most_common(n)]

这会给你的教授留下深刻的印象,包括列表理解,元组的优雅处理,以及长度无知的元组连接:D

顺便说一句,我总是建议诚实 - 所以你可能想说'#34;互联网上的某个人给了我这个提示,但我能理解为什么这个有用" - 这样你就不会对抄袭负责,并为可能的考试做好准备。