Skip to main content

Google专利数据分析工具 - 支持 CSV 处理、Excel 导出和 Web 可视化

Project description

Patent Analyzer - 专利数据分析工具

patent-analyzer 是一个用于分析 Google Patent CSV 数据的 Python 工具包。它提供从数据清洗、作者统计、合作网络分析到可视化看板的一站式解决方案。

功能特性

  1. 数据处理

    • 自动加载和清洗 Google Patent CSV 数据
    • 解析发明人、日期、专利类型等字段
    • 基于关键词的技术领域自动分类
  2. 数据分析

    • 作者专利统计与技术方向分析
    • 合作网络构建与 Louvain 社区检测
    • 时间趋势分析
    • 发明人重要性综合评估(专利数、质量、中心性、技术广度、活跃度)
    • 研发团队结构识别
  3. 数据导出

    • 生成文本报告(report.txt)
    • 导出 JSON 数据文件(author_stats.json, teams.json, cooperation.json)
    • 导出多 Sheet Excel 文件
    • 生成 matplotlib 可视化图表(PNG)
  4. Web 可视化看板

    • 基于 FastAPI 的 RESTful API
    • 基于 ECharts + Tailwind CSS + Alpine.js 的现代化前端
    • 支持图表展示、数据搜索、分页浏览
    • 合作网络力引导布局可视化

安装指南

环境要求

  • Python >= 3.9
  • pip >= 21.0

从 PyPI 安装(推荐)

pip install patent-analyzer

从源码安装

git clone https://github.com/example/patent-analyzer.git
cd patent-analyzer
pip install -e ".[dev]"

验证安装

patent-analyzer info

使用示例

1. 命令行处理 CSV 数据

# 处理 CSV 并生成报告、JSON 和图表
patent-analyzer process GooglePatent.csv --output-dir ./output

# 不生成图表,仅生成文本和 JSON
patent-analyzer process GooglePatent.csv --output-dir ./output --no-viz

2. 导出 Excel

patent-analyzer export-excel GooglePatent.csv --output report.xlsx

3. 启动 Web 服务

# 先处理数据再启动服务
patent-analyzer serve --input GooglePatent.csv --output-dir ./output

# 或直接加载已有的 output 目录
patent-analyzer serve --output-dir ./output --host 0.0.0.0 --port 8000

访问 http://127.0.0.1:8000 查看可视化看板。

4. Python API 使用

from patent_analyzer import PatentDataLoader, AuthorAnalyzer, CooperationAnalyzer

# 加载数据
loader = PatentDataLoader("GooglePatent.csv")
df = loader.load().clean().get_df()

# 作者分析
author_analyzer = AuthorAnalyzer(df)
author_analyzer.analyze()
print(author_analyzer.get_stats())

# 合作网络
coop_analyzer = CooperationAnalyzer(df)
coop_analyzer.analyze()
print(len(coop_analyzer.close_coop))

项目架构

patent_analyzer/
├── src/patent_analyzer/
│   ├── __init__.py          # 包入口
│   ├── __main__.py          # python -m patent_analyzer
│   ├── cli.py               # Typer 命令行接口
│   ├── core/                # 核心分析引擎
│   │   ├── data_loader.py   # CSV 加载与清洗
│   │   ├── analyzer.py      # 分析引擎(作者、合作、时间、团队、重要性)
│   │   ├── visualizer.py    # matplotlib 可视化
│   │   ├── report.py        # 报告与 JSON 导出
│   │   └── exporter.py      # Excel 导出
│   ├── web/                 # FastAPI Web 服务
│   │   ├── app.py           # FastAPI 应用工厂
│   │   ├── api/             # RESTful API 路由
│   │   ├── services/        # 数据缓存服务
│   │   └── static/          # 前端页面
│   └── utils/
│       └── logging.py       # 日志配置
├── tests/                   # 单元测试
├── pyproject.toml
└── README.md

新手入门

第一步:准备数据

确保你有一个从 Google Patent 导出的 CSV 文件,格式如下(前两行为 URL 和表头,从第三行开始是数据):

https://patents.google.com/?...
id,title,assignee,inventor,...
CN123456789,一种激光雷达装置,...

第二步:快速体验

# 处理数据
patent-analyzer process GooglePatent.csv

# 查看生成的 output/ 目录
ls output/
# report.txt  author_stats.json  teams.json  cooperation.json  *.png

第三步:启动看板

patent-analyzer serve --output-dir output

打开浏览器访问 http://127.0.0.1:8000

API 接口说明

Web 服务启动后提供以下 API:

方法 路径 说明
GET /api/health 健康检查
GET /api/overview/kpi 核心 KPI
GET /api/overview/patent-types 专利类型分布
GET /api/overview/tech-fields?top=20 技术领域 TOP N
GET /api/overview/year-trend 年度趋势
GET /api/authors 作者列表(支持搜索、排序、分页)
GET /api/authors/top?n=20 TOP N 作者
GET /api/authors/{name} 作者详情
GET /api/teams 团队列表
GET /api/teams/top?n=10 TOP N 团队
GET /api/cooperation 紧密合作列表
GET /api/cooperation/network?limit=200 网络图数据

参数说明

process 命令

  • input_file: 输入 CSV 文件路径(必需)
  • --output-dir, -o: 输出目录,默认 output
  • --no-viz: 禁用图表生成

export-excel 命令

  • input_file: 输入 CSV 文件路径(必需)
  • --output, -o: 输出 Excel 路径,默认 patent_analysis.xlsx

serve 命令

  • --input, -i: 输入 CSV 文件路径(可选,指定则先处理)
  • --output-dir, -o: 数据输出目录,默认 output
  • --host: 绑定地址,默认 127.0.0.1
  • --port, -p: 监听端口,默认 8000
  • --reload: 开发模式热重载

最佳实践

  1. 大数据量处理:如果 CSV 文件很大(>10MB),建议先用 process 命令生成 output,再用 serve 加载,避免每次启动都重新分析。
  2. 定期更新:可以设置定时任务运行 process 命令,保持 output 目录数据最新。
  3. 自定义技术领域:编辑 patent_analyzer/core/data_loader.py 中的 TECH_KEYWORDS 字典,添加你关注的技术关键词。
  4. 日志记录:CLI 命令会自动输出处理进度。如需文件日志,可在 Python API 中调用 setup_logging(log_file="analysis.log")

依赖项清单

核心依赖:

  • pandas, numpy: 数据处理
  • networkx, python-louvain: 网络分析与社区检测
  • matplotlib: 静态图表生成
  • openpyxl: Excel 导出
  • typer, rich: 命令行交互
  • fastapi, uvicorn: Web 服务

开发依赖:

  • pytest: 单元测试
  • black, ruff: 代码格式化与检查
  • mypy: 类型检查

贡献指南

欢迎提交 Issue 和 Pull Request。

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/awesome-feature)
  3. 提交更改 (git commit -am 'Add awesome feature')
  4. 推送到分支 (git push origin feature/awesome-feature)
  5. 创建 Pull Request

请确保代码通过 black 格式化和 pytest 测试。

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

patent_analyzer-0.1.0.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

patent_analyzer-0.1.0-py3-none-any.whl (41.6 kB view details)

Uploaded Python 3

File details

Details for the file patent_analyzer-0.1.0.tar.gz.

File metadata

  • Download URL: patent_analyzer-0.1.0.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for patent_analyzer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a90e944ba0575007136105cf20e17b27ceb88a40d8249f5f16052822d559e702
MD5 e88304aeb64a79e06673b42382545bbf
BLAKE2b-256 ec2328239f127131e55c3acde5284ddf8cd974c1b271b1943d99b797735ca503

See more details on using hashes here.

File details

Details for the file patent_analyzer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for patent_analyzer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc985907e57ef5d3293dc712811c20a5551cff2d3d1c8f2e1a3f9c8f849a085e
MD5 2a509b216f5308168a5a136d5a999c98
BLAKE2b-256 0141dbf430d356b2cd1589647d0e3607e5772a94fb35fa591c888be15cef5f64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page