奇怪的Bigram问题
问题描述:
我正在与bigrams合作,我有一个问题。我有正确的答案,但在错误格式奇怪的Bigram问题
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)
才能获得完整的学分。
答
只需使用
return [(" ".join(tup), count) for tup, count in cnt.most_common(n)]
让人印象深刻,与列表内涵,优雅的处理元组和长度昧加入的元组的教授:d
顺便说一句,我总是建议是诚实 - - 所以你可能想说“互联网上的某个人给了我这个提示,但我可以理解为什么这会起作用” - 这样你就永远不会对抄袭负责,并且会为可能的考试做好准备。
不要写作业。他不会学到任何东西。 – user38034 2015-02-06 20:11:13
@ user38034:他的教授将足够聪明,可以在他的几行代码中使用谷歌,并且会在这里结束;谷歌真的不是剽窃者的朋友。我相信Datguyovrder足够聪明,可以真正理解我写的东西 - 否则,他的教授就会被注意到,因为很明显,如果有人一直在试图让他的不合规解决方案通过,但是突然出现了正确的一个,你开始提问像“这是如何工作的?”。 – 2015-02-06 20:14:31
我认为教授有更重要的事情要做,而不是谷歌他的学生的代码。 – user38034 2015-02-06 20:21:25