You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python不借助NLTK统计单词列表中特定bigram的出现频率

Python无依赖实现特定二元组(bigram)频率统计

实现思路

二元组指的是单词序列中连续出现的两个有序相邻单词,我们只需要遍历单词列表的相邻元素对,和目标二元组匹配计数即可,全程不需要引入NLTK等第三方库,用Python原生语法或标准库就能实现。

方法1:单目标直接统计(适合仅查询1个特定二元组的场景)

遍历一次单词列表,遇到匹配的目标二元组就累加计数,内存占用低:

# 示例单词列表
word_list = ['car','hamburger','airplane','car','hamburger','pizza','hamburger']
# 待统计的目标二元组
target = ('car', 'hamburger')

count = 0
# 遍历到倒数第二个元素即可,避免索引越界
for i in range(len(word_list) - 1):
    if (word_list[i], word_list[i+1]) == target:
        count += 1

print(count)
# 上述示例输出结果为2

方法2:全量统计后查询(适合需要多次查询不同二元组的场景)

用Python标准库collections.Counter一次性统计所有二元组的频次,后续查询效率为O(1):

from collections import Counter

word_list = ['car','hamburger','airplane','car','hamburger','pizza','hamburger']
# 生成所有二元组
all_bigrams = [(word_list[i], word_list[i+1]) for i in range(len(word_list)-1)]
# 统计所有二元组频率
bigram_counter = Counter(all_bigrams)

# 查询目标二元组,不存在则默认返回0
target_count = bigram_counter.get(('car', 'hamburger'), 0)
print(target_count)

内容的提问来源于stack exchange,提问作者Nub199

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:57:01