情感倾向分析 - 生成用于 AI 情感分析的结构化提示词 本工具收集新闻数据并生成优化的 AI 提示词,你可以将其发送给 AI 进行深度情感分析。 Args: topic: 话题关键词(可选),只分析包含该关键词的新闻 platforms: 平台过滤列表(可选),如 ['zhihu', 'weibo'] date_range: 日期范围(可选),格式: {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"}
(
self,
topic: Optional[str] = None,
platforms: Optional[List[str]] = None,
date_range: Optional[Union[Dict[str, str], str]] = None,
limit: int = 50,
sort_by_weight: bool = True,
include_url: bool = False
)
| 655 | } |
| 656 | |
| 657 | def analyze_sentiment( |
| 658 | self, |
| 659 | topic: Optional[str] = None, |
| 660 | platforms: Optional[List[str]] = None, |
| 661 | date_range: Optional[Union[Dict[str, str], str]] = None, |
| 662 | limit: int = 50, |
| 663 | sort_by_weight: bool = True, |
| 664 | include_url: bool = False |
| 665 | ) -> Dict: |
| 666 | """ |
| 667 | 情感倾向分析 - 生成用于 AI 情感分析的结构化提示词 |
| 668 | |
| 669 | 本工具收集新闻数据并生成优化的 AI 提示词,你可以将其发送给 AI 进行深度情感分析。 |
| 670 | |
| 671 | Args: |
| 672 | topic: 话题关键词(可选),只分析包含该关键词的新闻 |
| 673 | platforms: 平台过滤列表(可选),如 ['zhihu', 'weibo'] |
| 674 | date_range: 日期范围(可选),格式: {"start": "YYYY-MM-DD", "end": "YYYY-MM-DD"} |
| 675 | 不指定则默认查询今天的数据 |
| 676 | limit: 返回新闻数量限制,默认50,最大100 |
| 677 | sort_by_weight: 是否按权重排序,默认True(推荐) |
| 678 | include_url: 是否包含URL链接,默认False(节省token) |
| 679 | |
| 680 | Returns: |
| 681 | 包含 AI 提示词和新闻数据的结构化结果 |
| 682 | |
| 683 | Examples: |
| 684 | 用户询问示例: |
| 685 | - "分析一下今天新闻的情感倾向" |
| 686 | - "看看'特斯拉'相关新闻是正面还是负面的" |
| 687 | - "分析各平台对'人工智能'的情感态度" |
| 688 | - "看看'特斯拉'相关新闻是正面还是负面的,请选择一周内的前10条新闻来分析" |
| 689 | |
| 690 | 代码调用示例: |
| 691 | >>> tools = AnalyticsTools() |
| 692 | >>> # 分析今天的特斯拉新闻,返回前10条 |
| 693 | >>> result = tools.analyze_sentiment( |
| 694 | ... topic="特斯拉", |
| 695 | ... limit=10 |
| 696 | ... ) |
| 697 | >>> # 分析一周内的特斯拉新闻(假设今天是 2025-11-17) |
| 698 | >>> result = tools.analyze_sentiment( |
| 699 | ... topic="特斯拉", |
| 700 | ... date_range={"start": "2025-11-11", "end": "2025-11-17"}, |
| 701 | ... limit=10 |
| 702 | ... ) |
| 703 | >>> print(result['ai_prompt']) # 获取生成的提示词 |
| 704 | """ |
| 705 | try: |
| 706 | # 参数验证 |
| 707 | if topic: |
| 708 | topic = validate_keyword(topic) |
| 709 | platforms = validate_platforms(platforms) |
| 710 | limit = validate_limit(limit, default=50) |
| 711 | |
| 712 | # 处理日期范围 |
| 713 | if date_range: |
| 714 | date_range_tuple = validate_date_range(date_range) |
nothing calls this directly
no test coverage detected