该项目实现了一个基于 TextRank 算法和 HDBSCAN 聚结合的文本摘要生成 API 服务,主要功能包括:
pip install fastapi uvicorn text2vec networkx hdbscan scikit-learn jinja2
uvicorn ApiMake:app --reload
服务默认运行在:http://localhost:8000
/summarize{
"text": "需要摘要的长文本...",
"num": 5,
"WindowsSize": 3,
"dbscan": false,
"MinClusterSize": 3,
"score": true,
"label": false,
"index": false
}
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| text | string | 必填 | 要处理的原始文本 |
| num | int | 5 | 要提取的摘要句子数量 |
| WindowsSize | int | 3 | TextRank 窗口大小 |
| dbscan | bool | false | 是否启用 HDBSCAN 聚类 |
| MinClusterSize | int | 3 | HDBSCAN 最小聚类大小 |
| score | bool | true | 返回结果是否包含句子得分 |
| label | bool | false | 返回结果是否包含聚类标签 |
| index | bool | false | 返回结果是否包含句子索引 |
{
"result": "句子1 score = 0.0234\n句子2 score = 0.0211\n..."
}
访问 http://localhost:8000/read 可使用内置的网页测试界面
TextRank 参数:
WindowsSize: 控制句子相似度计算的范围(建议值 2-5)num: 最终返回的关键句数量HDBSCAN 参数:
dbscan: 是否启用聚类功能MinClusterSize: 聚类的最小簇大小(建议值 3-5)label: 返回聚类标签(仅当 dbscan=true 时有效)输出控制:
score: 显示句子重要性得分index: 显示原句索引位置label: 显示聚类标签文本预处理:
特征提取:
text2vec-base-multilingual 模型生成句向量图算法:
聚类处理:
结果生成:
import requests
url = "http://localhost:8000/summarize"
data = {
"text": "长文本内容...",
"num": 3,
"WindowsSize": 4,
"dbscan": True,
"score": True,
"label": True
}
response = requests.post(url, json=data)
print(response.json()["result"])
text2vec-base-multilingual 模型(约 400MB)allow_origins)--reload 参数project/
├── ApiMake.py # FastAPI 主应用
├── TextRankForApi.py # 摘要算法实现
├── templates/
│ └── READ.html # 网页测试界面
└── static/ # 静态资源目录
该项目实现了一个基于 TextRank 算法和 HDBSCAN 聚结合的文本摘要生成 API 服务,主要功能包括:
pip install fastapi uvicorn text2vec networkx hdbscan scikit-learn jinja2
uvicorn ApiMake:app --reload
服务默认运行在:http://localhost:8000
/summarize{
"text": "需要摘要的长文本...",
"num": 5,
"WindowsSize": 3,
"dbscan": false,
"MinClusterSize": 3,
"score": true,
"label": false,
"index": false
}
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| text | string | 必填 | 要处理的原始文本 |
| num | int | 5 | 要提取的摘要句子数量 |
| WindowsSize | int | 3 | TextRank 窗口大小 |
| dbscan | bool | false | 是否启用 HDBSCAN 聚类 |
| MinClusterSize | int | 3 | HDBSCAN 最小聚类大小 |
| score | bool | true | 返回结果是否包含句子得分 |
| label | bool | false | 返回结果是否包含聚类标签 |
| index | bool | false | 返回结果是否包含句子索引 |
{
"result": "句子1 score = 0.0234\n句子2 score = 0.0211\n..."
}
访问 http://localhost:8000/read 可使用内置的网页测试界面
TextRank 参数:
WindowsSize: 控制句子相似度计算的范围(建议值 2-5)num: 最终返回的关键句数量HDBSCAN 参数:
dbscan: 是否启用聚类功能MinClusterSize: 聚类的最小簇大小(建议值 3-5)label: 返回聚类标签(仅当 dbscan=true 时有效)输出控制:
score: 显示句子重要性得分index: 显示原句索引位置label: 显示聚类标签文本预处理:
特征提取:
text2vec-base-multilingual 模型生成句向量图算法:
聚类处理:
结果生成:
import requests
url = "http://localhost:8000/summarize"
data = {
"text": "长文本内容...",
"num": 3,
"WindowsSize": 4,
"dbscan": True,
"score": True,
"label": True
}
response = requests.post(url, json=data)
print(response.json()["result"])
text2vec-base-multilingual 模型(约 400MB)allow_origins)--reload 参数project/
├── ApiMake.py # FastAPI 主应用
├── TextRankForApi.py # 摘要算法实现
├── templates/
│ └── READ.html # 网页测试界面
└── static/ # 静态资源目录