探索新闻的无界之旅:Wren
Wren是一款创新性的工具,它让读者可以跨越信息茧房,发现和探索每日新闻故事,通过对话式接口(如Slack)为用户提供新闻监控和深度阅读体验。
项目简介
Wren是一个由三部分组成的系统:
-
数据采集:新闻聚合层,用于监测并从多个国际新闻源获取数据。它能够监听RSS馈送,解析,捕获,并存储来自各种在线新闻源的内容。
-
数据分析:内容分析层,利用自然语言处理技术(NLP)对新闻进行丰富和发现。这一模块可提取实体、概念、关键词、分类,以及进行社交媒体上的新闻热度分析。
-
对话界面:基于RASA训练的对话系统,允许用户通过富文本查询已增强的新闻数据。
这个系统特别适合数据记者寻找故事线索,简单易用。
图1. Wren 技术架构概览
系统首先通过监听RSS馈送来收集最新发布的内容,包括原始文本和元数据(如日期、时间、标题、新闻源等)。然后,数据被发送到一个中间件——使用Apache Kafka进行处理和摄取,其特点是可扩展且容错。之后,数据存储在文档型数据库MongoDB中。最后,通过RASA驱动的对话层,使用户可以通过聊天方式轻松访问和交互数据。
功能特性
- 从多样化的新闻机构收集文章、播客和视频
- 提取新闻内容中的实体、概念、关键词和分类
- 数据集中化存入单一数据库
- 基于用户调查设计并训练了模型,提供了超过20,000个查询样例数据
- 集成了Slackbot,让用户可通过对话接口查询新闻内容
- 支持将文章转换为音频,实现听读功能
- 查找并播放播客和视频
开始使用
所有的运行命令都写在Makefile
中,包括使用docker-compose
启动所有服务的说明。
要构建项目,只需执行:
$ build
或进入docker
目录,分别执行docker-compose build
和docker-compose up -d
。
要与容器交互,可以输入:
$ docker exec -it wren_app sh
接着,你可以使用Rasa训练你的NLU模型:
python -m rasa_nlu.train -c config/nlu_config.json
测试Rasa服务器状态:
curl 'http://<SERVER>:<PORT>/status'
配置文件管理和第三方服务的本地安装指南也在项目中详细描述。
应用场景
无论是普通读者想要突破信息瓶颈,还是数据分析师希望从海量新闻中挖掘有价值的信息,甚至是新闻机构想要快速跟踪公众舆论,Wren都是理想的选择。其提供的多样化搜索功能,使新闻挖掘变得直观而高效。
项目亮点
- 多源集成:覆盖众多国际新闻源,提供广泛视角。
- 深度分析:利用NLP进行实体识别、情感分析,提升新闻洞察力。
- 对话式接口:通过Slack等平台与用户互动,提供个性化新闻体验。
- 开放数据集:提供训练样本数据,鼓励开发者扩展和改进模型。
Wren以其强大的新闻发现和分析能力,为现代新闻消费带来了全新的可能性。我们欢迎你加入这个社区,共同塑造更加智能和包容的新闻环境。
许可证
本项目采用MIT许可证。更多详情,请参阅LICENSE文件。