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

如何用Python统计文本中同时包含两个集合各至少一个元素的文章占比

实现思路
  • 先预定义两个关键词集合,利用集合O(1)的查找特性提升匹配效率
  • 读取新闻文本文件,按实际存储的文章分隔规则拆分出单篇文章(默认按每篇占一行处理,如有其他分隔规则可调整拆分逻辑)
  • 遍历每篇文章,依次校验两个匹配条件:是否包含Set1的至少一个元素、是否包含Set2的至少一个元素
  • 统计同时满足两个条件的文章数量,通过「符合条件数/总文章数*100」计算得到占比百分比
参考代码
# 1. 定义两个关键词集合
set1 = {"apple", "orange", "grape", "banana", "fruit"}
set2 = {"doctor", "medicine", "health", "sick"}

# 2. 初始化统计变量
total_articles = 0
match_articles = 0

# 3. 读取新闻文件,逐篇校验
# 注意替换下方的news.txt为你实际的新闻文件路径
with open("news.txt", "r", encoding="utf-8") as f:
    for article in f:
        # 跳过空行
        article = article.strip()
        if not article:
            continue
        total_articles += 1
        # 校验是否同时匹配两个集合的关键词
        has_set1 = any(keyword in article for keyword in set1)
        has_set2 = any(keyword in article for keyword in set2)
        if has_set1 and has_set2:
            match_articles += 1

# 4. 计算占比
if total_articles == 0:
    percentage = 0
else:
    percentage = (match_articles / total_articles) * 100

# 输出结果
print(f"总文章数:{total_articles}")
print(f"符合条件的文章数:{match_articles}")
print(f"占比:{percentage:.2f}%")
可选调整说明
  • 如果需要忽略大小写匹配,可以把校验逻辑改成any(keyword.lower() in article.lower() for keyword in set1)即可
  • 如果你的新闻文件不是每篇占一行,而是用特殊分隔符(比如---)分隔文章,可以先读取整个文件内容再用对应分隔符拆分得到文章列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:27:02