我正在与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)
才能得到充分的信任。
答案 0 :(得分:0)
只需使用
return [(" ".join(tup), count) for tup, count in cnt.most_common(n)]
这会给你的教授留下深刻的印象,包括列表理解,元组的优雅处理,以及长度无知的元组连接:D
顺便说一句,我总是建议诚实 - 所以你可能想说'#34;互联网上的某个人给了我这个提示,但我能理解为什么这个有用" - 这样你就不会对抄袭负责,并为可能的考试做好准备。