我试图找到一种方法来计算使用python的单词列表中的两个单词序列。我将一个单词列表转换为两个单词列表。然后我想尝试计算所有相似的两个单词列表的频率。我尝试了计数器功能,但它给了我一个不可用的类型:'list'。我的代码示例如下所示:
s = ['one', 'two','three','four','five','six','one','two']
print s
print
p=[]
i=0
for i in range(0,len(s)/2):
p.append(s[i*2:i*2+2])
print p
wordcounter = Counter(p)
我正在尝试输出,以便最顶出的两个单词显示在顶部,并显示它们旁边的出现次数。先感谢您。
答案 0 :(得分:0)
要求 - "我正在尝试输出,以便最顶出的两个单词显示在顶部,旁边有出现的次数。"
您应该尝试Counter.most_common
方法并告诉我们它是否适合您。
答案 1 :(得分:0)
计数器仅适用于可清洗物品。 p
的项目是列表,因此它们不可清除。绕过它的一种方法是联合内部字符串列表,例如
wordcounter = collections.Counter(" ".join(v) for v in p)
print(wordcounter)
# gives
# Counter({'one two': 2, 'three four': 1, 'five six': 1})
答案 2 :(得分:0)
我认为我能做到这一点是一个很好的单线列表组合。结果证明它不太好:
newlist=[ii for n,ii in enumerate([[x,[lst[i:i+2] for i in range(0,len(lst),2)].count(x)] for x in [lst[i:i+2] for i in range(0,len(lst),2)]]) if ii not in [[x,[lst[i:i+2] for i in range(0,len(lst),2)].count(x)] for x in [lst[i:i+2] for i in range(0,len(lst),2)]][:n]]
请怜悯我的灵魂