Back to skills
extension
Category: Data & AnalyticsNo API key required

文本情报 实体情感 摘要抽取

将非结构化文本自动抽取为实体、主题、情感与摘要的结构化JSON,为新闻聚合、舆情监控、市场研究等场景提供开箱即用的文本情报分析能力。

personAuthor: user_2fd890c9hubcommunity

⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。

<!-- professional-disclaimer-injected -->

📜 用户协议(User Agreement)

  1. 本 Skill 仅供学习与参考用途。使用本 Skill 产生的任何结果,由使用者自行承担全部责任;本 Skill 不提供任何明示或暗示的保证。
  2. 涉及法律、财务、税务、投资、医疗等专业决策时,请务必咨询持证专业人士。
  3. 本代码受版权法保护,未经授权复制、反向工程或商业利用将被追究法律责任。
<!-- user-agreement-injected -->

calais — 文本情报抽取 Skill 文档

一句话定位:将非结构化文本自动抽取为实体、主题、情感与摘要的结构化JSON,为新闻聚合、舆情监控、市场研究等场景提供开箱即用的文本情报分析能力。


快速开始 Quick Start

以下是最短可用路径,每条均对应真实可运行的命令与预期结果。

| 场景 | 命令 | 预期结果 | |------|------|----------| | 单篇文本抽取 | python run.py --text "苹果公司于9月10日发布iPhone 15,市场反应热烈。" | 输出包含实体、主题、情感、摘要的JSON对象 | | 文件批量处理 | python run.py --input ./news.txt --batch | 输出JSON数组,顺序与输入一致 | | 流式处理 | cat news.txt \| python run.py --stream | 每行输出一个JSON对象 | | 自检 | python run.py --selftest | 退出码0,输出测试通过信息 |


适用场景 When to Use

什么时候用

  • 新闻聚合平台运营者:快速分类、打标签,提升内容分发效率。
  • 舆情监控人员:批量分析评论情感,识别负面舆情热点。
  • 市场研究员:从行业报告中提取关键实体与主题,辅助决策。
  • 内容编辑:快速生成摘要辅助审稿,节省阅读时间。
  • 数据分析师:将非结构化文本转为结构化数据,供下游数据管道使用。

什么时候不要用

  • 音频/视频直接处理:本Skill仅处理文本,需先转写为文本。
  • 跨语言翻译:仅处理输入语言本身(中文/英文),不提供翻译功能。
  • 实体关系图谱构建:仅识别实体本身,不构建实体间关系。
  • 图片文字识别:需先进行OCR,本Skill不处理图片。
  • 深度语义推理:如因果推断、意图预测等,超出本Skill能力范围。

能力总览 Capabilities

以下能力清单与代码实现一一对应,每个能力均可通过对应命令或参数验证。

| 能力 | 命令/参数 | 示例 | |------|-----------|------| | 实体抽取 | --text / --input | python run.py --text "苹果公司发布iPhone 15" → 输出实体列表 | | 主题分类 | --text / --input | python run.py --text "美联储宣布加息" → 输出主题标签与置信度 | | 情感分析 | --text / --input | python run.py --text "这款产品体验极差" → 输出情感倾向与强度 | | 摘要生成 | --text / --input | python run.py --text "长新闻稿..." → 输出摘要与压缩比 | | 批量处理 | --batch | python run.py --input ./news.txt --batch → 输出JSON数组 | | 流式处理 | --stream | cat news.txt \| python run.py --stream → 逐行输出JSON | | 语言检测 | --text / --input | 自动检测输入语言,输出lang字段 | | 置信度门控 | 内置逻辑 | 低于阈值的实体/主题/情感自动降级处理 | | 缓存 | 内置逻辑 | 基于内容哈希的TTL缓存,提升重复处理效率 | | 干跑模式 | --dry-run | 预览将写入的文件路径与摘要,不实际写盘 | | 详细模式 | --verbose | 输出每个处理步骤的明细,便于调试 | | 自检 | --selftest | 真实调用主流程并断言关键输出,退出码0 |


模块决策表 Decision Table

根据用户意图选择对应模块与命令,快速定位所需功能。

| 用户意图 | 模块 | 命令/参数 | 读取指引 | |----------|------|-----------|----------| | 单篇文本结构化 | 完整抽取流程 | --text | 直接传入文本,输出完整JSON | | 批量文档处理 | 批量模式 | --input + --batch | 输入文件路径,输出JSON数组 | | 实时数据流分析 | 流式模式 | --stream | 管道输入,逐行输出JSON | | 仅实体识别 | 实体抽取模块 | --text + --entities-only | 仅输出实体列表 | | 仅情感分析 | 情感分析模块 | --text + --sentiment-only | 仅输出情感结果 | | 仅摘要生成 | 摘要生成模块 | --text + --summary-only | 仅输出摘要结果 | | 预览处理结果 | 干跑模式 | --dry-run | 不写盘,打印将写入的路径与摘要 | | 调试处理过程 | 详细模式 | --verbose | 输出每个步骤的明细 |


示例 Examples

示例1:单篇文本完整抽取

命令

python run.py --text "苹果公司于9月10日发布iPhone 15,市场反应热烈。"

输出

{
  "text": "苹果公司于9月10日发布iPhone 15,市场反应热烈。",
  "lang": "zh",
  "entities": [
    {"name": "苹果公司", "type": "ORG", "confidence": 0.95},
    {"name": "iPhone 15", "type": "PRODUCT", "confidence": 0.92}
  ],
  "topics": [{"label": "科技", "confidence": 0.88}],
  "sentiment": {"label": "positive", "score": 0.75},
  "summary": "苹果公司发布iPhone 15,市场反应热烈。",
  "compression_ratio": 0.5,
  "processed_at": "2024-01-01T00:00:00Z"
}

示例2:批量文件处理

命令

python run.py --input ./news.txt --batch

输出

[
  {"text": "第一条新闻...", "entities": [...], "topics": [...], "sentiment": {...}, "summary": "..."},
  {"text": "第二条新闻...", "entities": [...], "topics": [...], "sentiment": {...}, "summary": "..."}
]

示例3:流式处理

命令

echo "这是一条测试新闻。" | python run.py --stream

输出

{"text": "这是一条测试新闻。", "lang": "zh", "entities": [], "topics": [], "sentiment": {"label": "neutral", "score": 0.0}, "summary": "这是一条测试新闻。", "compression_ratio": 1.0, "processed_at": "2024-01-01T00:00:00Z"}

安装与配置 Installation

依赖

  • Python 3.8+
  • 无第三方库依赖(仅使用标准库)

环境变量

| 变量名 | 默认值 | 说明 | |--------|--------|------| | CALAIS_CACHE_TTL | 3600 | 缓存有效期(秒) | | CALAIS_CONFIDENCE_THRESHOLD | 0.5 | 置信度门控阈值 |

配置

无需额外配置,开箱即用。


常见问题 Troubleshooting

问题1:输出为空或异常

现象:运行命令后无输出或报错。

原因:输入文本为空或格式不正确。

解决办法:检查输入文本是否非空,确保文本编码为UTF-8、GBK或GB18030。

问题2:实体识别不准确

现象:识别出的实体与预期不符。

原因:实体词典覆盖有限,或文本语境复杂。

解决办法:检查文本是否包含特殊格式(如全角字符),尝试调整文本格式。

问题3:情感分析结果不理想

现象:情感倾向判断错误。

原因:情感词典覆盖有限,或文本包含反讽、双关等复杂表达。

解决办法:检查文本是否包含网络用语或方言,尝试简化文本。


最佳实践 Best Practices / 注意事项

  • 输入文本质量:确保输入文本清晰、无乱码,以提高抽取准确率。
  • 批量处理:对于大量文本,建议使用--batch模式,避免内存溢出。
  • 缓存使用:对于重复处理的文本,缓存可显著提升效率。
  • 安全提醒:本Skill不处理敏感数据,请勿输入包含个人隐私或机密信息的文本。

相关资源 Related

许可证(License)

MIT License

Copyright (c) {year} {holder}

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

<!-- professional-license-embedded -->