Python-Top-Bigrams

Python-Top-Bigrams,python,Python,上面的代码适用于像令牌这样的输入,但当我使用令牌2时,它会抛出一个错误。最终,我应该让它在得到一组代币时返回前2个大字。非常感谢您的帮助。如果您有令牌列表(如token2) 会有用的。如果你所拥有的完全不同,比如像tokens这样的单一列表,或者你提到的sets,一切都可能会改变——但我们无法读懂你的心思,所以你最好编辑你的Q,准确地解释你所追求的 所以tokens2是一个令牌列表,对吗?然而你说集合——这真的是你想要的吗,或者…?是的,你是对的,tokens2是一个标记列表。token和tok

上面的代码适用于像令牌这样的输入,但当我使用令牌2时,它会抛出一个错误。最终,我应该让它在得到一组代币时返回前2个大字。非常感谢您的帮助。

如果您有令牌列表(如
token2


会有用的。如果你所拥有的完全不同,比如像
tokens
这样的单一列表,或者你提到的
set
s,一切都可能会改变——但我们无法读懂你的心思,所以你最好编辑你的Q,准确地解释你所追求的

所以
tokens2
是一个令牌列表,对吗?然而你说
集合
——这真的是你想要的吗,或者…?是的,你是对的,tokens2是一个标记列表。token和tokens2都是可能的输入,其中我应该返回前两个最常见的bigramswing来接受完全不同类型的参数,并且在每个参数上采取不同的操作,这是一个绝对邪恶的规范,因为它需要进行类型测试。我会坚持原则,反对这种规范(从我上大学以来,我已经坚持这种立场几十年了,尽管有一些困难的后果,但它为我的职业生涯服务,无论我在这个世界上做了什么好事,都非常好)。我建议您也这样做,解释为什么期望您同时接受字符串列表和列表列表是邪恶、荒谬和毫无意义的。但是,如果吐出您的规格的流氓劫持了您的孩子,我想您可以检查
类型(toksofomekind[0])
,并相应地改变行为(只要你发誓要以同样残忍的方式回来,一旦有机会,就要向上述恶棍报仇!).你是对的,Alex.期望全班实现这种方法,接受一个令牌列表和一个令牌列表,这似乎有点残忍。我会尊重你的请求,如果需要的话,我会让我的教授参与拳赛。该方法应该接受一个像tok这样的列表以及一个像tok这样的令牌列表tok2.从那里返回最常见的两个大人物。@Datguyovrder,请看我对你的问题的评论。既然你没有挟持人质反对我,我就不会屈尊进行类型检查来满足这个邪恶、荒谬、疯狂、不合理的规范,你需要接受完全不同类型的论点,并根据arg的类型采取行动(一个要求进行可怕的类型检查的规范)。如果你不能说服你的教授、助教或任何制定这个疯狂规范的人,请让他们与我联系,我会尽全力。
import nltk
from nltk.collocations import *

tokens = ['a','b','c','d','b','c','a','b','c']
tokens2 = [['a','b','c','d'],['b','c','a','b','c']]
bigrams = nltk.bigrams(tokens)

fdist = nltk.FreqDist(bigrams)
for i,j in fdist.items():
    print i,j``

print fdist.most_common(2)
import collections
cnt = collections.Counter()

for toks in token2:
    cnt.update(nltk.bigrams(toks))

print(cnt.most_common(2))