录入社区公告,自动提醒关键词信息(核酸/停水/停电/消防演练),按紧急程度推送提醒给社区居民。

5 阅读4分钟
  1. 实际应用场景描述

在社区管理系统中,物业或居委会会发布各种公告,例如:

  • 核酸检测安排
  • 临时停水通知
  • 计划停电信息
  • 消防演练预告

居民需要从大量公告中快速获取与自己生活密切相关的紧急信息,但人工筛选耗时且容易遗漏。

因此需要一个自动化工具,实时扫描公告内容,提取关键词,并根据紧急程度排序推送给居民。

  1. 痛点分析

  2. 信息量大:社区公告每天可能有多条,居民难以逐条阅读。

  3. 紧急程度不同:停水、停电、消防演练的紧急程度不同,需要分级提醒。

  4. 关键词识别:人工判断效率低,容易出错。

  5. 推送精准度:避免无关信息干扰居民。

  6. 核心逻辑讲解

  7. 输入:公告文本(标题 + 内容)。

  8. 关键词匹配:使用预定义的关键词列表( "核酸"、 "停水"、 "停电"、 "消防演练")。

  9. 紧急程度映射:为每个关键词设定紧急级别(1-高,2-中,3-低)。

  10. 排序推荐:根据紧急级别排序,生成提醒列表。

  11. 输出:按紧急程度推送公告摘要给居民。

  12. 模块化 Python 代码

文件结构

community_alert/ ├── main.py ├── config.py ├── analyzer.py ├── utils.py └── README.md

"config.py"

关键词与紧急程度映射

1: 高紧急, 2: 中紧急, 3: 低紧急

KEYWORDS = { "核酸": 1, "停水": 1, "停电": 1, "消防演练": 2 }

"utils.py"

def preprocess_text(text): """简单预处理:转小写,去除多余空格""" return text.lower().strip()

"analyzer.py"

from config import KEYWORDS from utils import preprocess_text

class AnnouncementAnalyzer: def init(self): self.keywords = KEYWORDS

def analyze(self, title, content):
    """分析公告,返回匹配的紧急关键词及等级"""
    text = preprocess_text(title + " " + content)
    matched = []
    for kw, level in self.keywords.items():
        if kw in text:
            matched.append((kw, level))
    # 按紧急程度升序(1最高)
    matched.sort(key=lambda x: x[1])
    return matched

"main.py"

from analyzer import AnnouncementAnalyzer import json

def load_announcements(file_path): """从JSON文件加载公告数据""" with open(file_path, 'r', encoding='utf-8') as f: return json.load(f)

def recommend_alerts(announcements): """为所有公告生成推荐提醒""" analyzer = AnnouncementAnalyzer() results = [] for ann in announcements: matches = analyzer.analyze(ann['title'], ann['content']) if matches: # 取最高紧急程度作为该公告的等级 highest_level = matches[0][1] results.append({ 'title': ann['title'], 'summary': ann['content'][:50] + "...", 'keywords': [m[0] for m in matches], 'level': highest_level }) # 按紧急程度排序 results.sort(key=lambda x: x['level']) return results

def main(): announcements = load_announcements('announcements.json') alerts = recommend_alerts(announcements) print("=== 社区紧急提醒推荐 ===") for alert in alerts: print(f"【等级{alert['level']}】{alert['title']} | 关键词: {', '.join(alert['keywords'])} | 摘要: {alert['summary']}")

if name == "main": main()

"announcements.json"(示例数据)

[ {"title": "本周五核酸检测安排", "content": "本周五上午9点至12点在社区广场进行核酸检测,请居民携带身份证前往。"}, {"title": "临时停水通知", "content": "因管道维修,明日上午8点至下午5点停水,请提前储水。"}, {"title": "消防演练预告", "content": "下周三上午10点社区将举行消防演练,请居民配合参与。"}, {"title": "社区读书会活动", "content": "本周六下午2点举办读书分享会,欢迎参加。"} ]

  1. README.md

社区公告关键词自动提醒系统

功能

  • 自动扫描社区公告
  • 识别关键词(核酸/停水/停电/消防演练)
  • 按紧急程度排序推送

安装

  1. 克隆仓库
  2. 确保 Python 3.7+
  3. 安装依赖(无第三方库)

使用

  1. 编辑 announcements.json 添加公告
  2. 运行 python main.py
  3. 查看终端输出的紧急提醒列表

扩展

  • 可接入微信/短信推送
  • 可增加更多关键词与紧急等级
  1. 使用说明

  2. 将公告存入 "announcements.json"。

  3. 运行 "main.py",程序会输出按紧急程度排序的提醒。

  4. 可根据需要扩展关键词和紧急等级。

  5. 核心知识点卡片

知识点 说明 关键词匹配 使用 "in" 运算符进行简单字符串匹配 紧急程度映射 字典存储关键词与等级 模块化设计 分离配置、工具、分析逻辑 JSON 数据读取 "json.load" 读取结构化数据 排序算法 "list.sort(key=...)" 按紧急程度排序 文本预处理 转小写、去空格提高匹配准确率

  1. 总结

本系统通过关键词匹配 + 紧急程度排序,实现了社区公告的自动化筛选与提醒,解决了居民在大量信息中快速获取关键通知的痛点。

代码采用模块化设计,便于扩展和维护,未来可结合自然语言处理(NLP)提升匹配精度,并集成消息推送服务实现真正的实时提醒。

如果你需要,还可以增加微信推送功能或做一个简单的Web界面,让这个系统更贴近真实社区应用场景。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!