一、collections 的 Counter

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/python
import time
s = time.time()

from collections import Counter

raw_corpus = ['商业 新知 : 知识图谱 为 内核 , 构建 商业 创新 服务 完整 生态 。',
 '如何 更好 利用 知识图谱 技术 做 反 欺诈 ?   360 金融 首席 数据 科学家 沈赟开 讲 。',
 '知识 管理   |   基于 知识图谱 的 国际 知识 管理 领域 可视化 分析 。',
 '一文 详解 达观 数据 知识图谱 技术 与 应用 。',
 '知识图谱 技术 落地 金融 行业 的 关键 四步 。',
 '一文 读 懂 知识图谱 的 商业 应用 进程 及 技术 背景 。',
 '海云数 据 CPO 王斌 : 打造 大数据 可视 分析 与 AI 应用 的 高科技 企业 。',
 '智能 产业 | 《 人工 智能 标准化 白皮 书 2018 》 带来 创新 创业 新技术 标准 。',
 '国家 语委 重大 科研 项目 “ 中华经典 诗词 知识图谱 构建技术 研究 ” 开题 。',
 '最全 知识图谱 介绍 : 关键 技术 、 开放 数据集 、 应用 案例 汇总 。',
 '中译 语通 Jove   Mind 知识图谱 平台   引领 企业 智能化 发展 。',
 '知识图谱 : 知识图谱 赋能 企业 数字化 转型 , 为 企业 升级 转型 注入 新 能量 。']

raw_corpus = " ".join(raw_corpus)
# print(Counter(raw_corpus.split()))
frequency = Counter(raw_corpus.split())
# print(frequency.most_common(2)) # 输出词频最高的2个词
print(time.time() - s)
耗时
0.004360198974609375

二、直接dict

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python
import time

s = time.time()
raw_corpus = ['商业 新知 : 知识图谱 为 内核 , 构建 商业 创新 服务 完整 生态 。',
 '如何 更好 利用 知识图谱 技术 做 反 欺诈 ?   360 金融 首席 数据 科学家 沈赟开 讲 。',
 '知识 管理   |   基于 知识图谱 的 国际 知识 管理 领域 可视化 分析 。',
 '一文 详解 达观 数据 知识图谱 技术 与 应用 。',
 '知识图谱 技术 落地 金融 行业 的 关键 四步 。',
 '一文 读 懂 知识图谱 的 商业 应用 进程 及 技术 背景 。',
 '海云数 据 CPO 王斌 : 打造 大数据 可视 分析 与 AI 应用 的 高科技 企业 。',
 '智能 产业 | 《 人工 智能 标准化 白皮 书 2018 》 带来 创新 创业 新技术 标准 。',
 '国家 语委 重大 科研 项目 “ 中华经典 诗词 知识图谱 构建技术 研究 ” 开题 。',
 '最全 知识图谱 介绍 : 关键 技术 、 开放 数据集 、 应用 案例 汇总 。',
 '中译 语通 Jove   Mind 知识图谱 平台   引领 企业 智能化 发展 。',
 '知识图谱 : 知识图谱 赋能 企业 数字化 转型 , 为 企业 升级 转型 注入 新 能量 。']

raw_corpus = " ".join(raw_corpus)
frequency = {}

for word in raw_corpus.split():
    if word not in frequency:
        frequency[word] = 1
    else:
        frequency[word] += 1
print(time.time() - s)
耗时
5.269050598144531e-05

三、collections 的 defaultdict

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python
import time
s = time.time()

from collections import defaultdict

raw_corpus = ['商业 新知 : 知识图谱 为 内核 , 构建 商业 创新 服务 完整 生态 。',
 '如何 更好 利用 知识图谱 技术 做 反 欺诈 ?   360 金融 首席 数据 科学家 沈赟开 讲 。',
 '知识 管理   |   基于 知识图谱 的 国际 知识 管理 领域 可视化 分析 。',
 '一文 详解 达观 数据 知识图谱 技术 与 应用 。',
 '知识图谱 技术 落地 金融 行业 的 关键 四步 。',
 '一文 读 懂 知识图谱 的 商业 应用 进程 及 技术 背景 。',
 '海云数 据 CPO 王斌 : 打造 大数据 可视 分析 与 AI 应用 的 高科技 企业 。',
 '智能 产业 | 《 人工 智能 标准化 白皮 书 2018 》 带来 创新 创业 新技术 标准 。',
 '国家 语委 重大 科研 项目 “ 中华经典 诗词 知识图谱 构建技术 研究 ” 开题 。',
 '最全 知识图谱 介绍 : 关键 技术 、 开放 数据集 、 应用 案例 汇总 。',
 '中译 语通 Jove   Mind 知识图谱 平台   引领 企业 智能化 发展 。',
 '知识图谱 : 知识图谱 赋能 企业 数字化 转型 , 为 企业 升级 转型 注入 新 能量 。']

raw_corpus = " ".join(raw_corpus)

frequency = defaultdict(int)

for word in raw_corpus.split():
    frequency[word] += 1
print(time.time() - s)
耗时
0.0027456283569335938

四、小结

  以上,直接dict的方法最快,Counter代码最清爽,且可以输出词频最高的前几个词。

打赏

微信 微信 支付宝 支付宝
万分感谢