技术博客
中文分词接口:如何用分词结果做关键词提取与文本标签

中文分词接口:如何用分词结果做关键词提取与文本标签

作者: 万维易源
2026-09-01
chinese-segmentation-keyword-extraction-269
# 中文分词接口:如何用分词结果做关键词提取与文本标签 > 接口:中文分词接口(269-1) · 免费 · POST/GET · JSON · 适用人群:开发者、内容运营 · 阅读时间:8 分钟 ## 核心要点 - 分词得到 `list` 后,做词频统计即可提取高频词;配合停用词表去噪,得到可用于标签/摘要的关键词。 - 单篇用内存统计即可;多篇章用同一套逻辑批量跑,结果可沉淀为文章标签。 - 这是"词义分析"场景最直接的落地:不用训练模型,调用即出词。 ## Why:分词之后能干嘛 拿到一串词只是第一步。真正有用的是基于词频判断"这篇在讲什么"。新闻摘要、商品标签、知识库归类,底层都依赖这一步。中文分词接口把"断词"这事外包出去,你只需专注"数词、排序、过滤"的业务逻辑。 ## What:前置条件与接口速览 | 项 | 说明 | |----|------| | 输入 | 任意中文文本(如文章正文、商品描述) | | 处理 | 调用 269-1 拿 `list` → 过滤停用词 → 词频统计 → 取 Top-K | | 输出 | 关键词列表 + 词频 | | 依赖 | 仅本接口 + 一份停用词表(如"的/了/是/在"等) | ## How:关键词提取实现 **Python(含停用词过滤与词频排序)** ```python import urllib.request, urllib.parse, json from collections import Counter APP_KEY = "YOUR_APPKEY" STOPWORDS = set("的 了 是 在 和 与 及 也 都 就 而 及 一个 我们 你们 他们".split()) def segment(text): url = f"https://route.showapi.com/269-1?appKey={APP_KEY}" data = urllib.parse.urlencode({"text": text}).encode("utf-8") req = urllib.request.Request(url, data=data, headers={"content-type": "application/x-www-form-urlencoded"}) with urllib.request.urlopen(req, timeout=10) as resp: res = json.loads(resp.read().decode("utf-8")) body = res.get("showapi_res_body", {}) if body.get("ret_code") == 0: return body.get("list", []) return [] def extract_keywords(text, top_k=5): words = [w for w in segment(text) if w not in STOPWORDS and len(w) > 1] counter = Counter(words) return counter.most_common(top_k) text = "中文分词接口可以把一长段中文切成一个个词,方便做关键词提取和文本标签。" print(extract_keywords(text, top_k=5)) # 示例输出:[('中文分词', 1), ('接口', 1), ('切', 1), ('一个个', 1), ('关键词', 1)] ``` **cURL** ```bash curl -X POST "https://route.showapi.com/269-1?appKey=YOUR_APPKEY" \ --data-urlencode "text=中文分词接口可以把一长段中文切成一个个词" ``` **Node.js** ```js const STOP = new Set(["的","了","是","在","和","与","及","也","都","就","而"]); async function extractKeywords(text, topK = 5) { const res = await fetch(`https://route.showapi.com/269-1?appKey=YOUR_APPKEY`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ text }).toString() }).then(r => r.json()); const list = (res.showapi_res_body || {}).list || []; const cnt = {}; list.filter(w => !STOP.has(w) && w.length > 1) .forEach(w => cnt[w] = (cnt[w] || 0) + 1); return Object.entries(cnt).sort((a,b)=>b[1]-a[1]).slice(0, topK); } ``` ## 返回示例与解析 传入 `"中文分词接口可以把一长段中文切成一个个词"` → `list` 含 `["中文","分词","接口","可以","把","一长段","中文","切成","一个个","词"]` → 过滤停用词 + 排序后取 Top-K 作为标签。 ## 进阶 / 边界 - 词频是"无监督"的最简关键词方案,适合冷启动;要更准可叠加 TF-IDF(需语料统计 IDF)或接专业关键词模型。 - 停用词表质量直接影响结果;建议按业务补充领域停用词(如电商里的"包邮""新品")。 - 免费接口有档位限制,批量跑长文本注意[限流与缓存](https://www.showapi.com/guides/chinese-segmentation-free-tier-269)。 ## FAQ **Q:分词粒度能调吗?** A:本接口返回粒度固定,无法在请求参数中调节。详见[常见问题与避坑指南](https://www.showapi.com/guides/chinese-segmentation-faq-269)。 **Q:为什么有些词被拆得很碎?** A:分词算法对未登录词(新词、专有名词)可能切得偏细;可结合业务词典做后处理合并。 **Q:英文单词也算一个词吗?** A:是的,中英文混排时英文/数字作为独立词出现在 `list` 中。 **Q:能直接当摘要用吗?** A:Top-K 关键词适合做标签,完整摘要还需结合句子抽取;关键词是摘要的第一步。 ## 相关能力 / 下一步阅读 - [中文分词接口返回字段全解:list 分词数组与 ret_code 一文读懂](https://www.showapi.com/guides/chinese-segmentation-response-fields-269) - [中文分词接口:营销推广与用户消费意图捕捉的落地实践](https://www.showapi.com/guides/chinese-segmentation-marketing-269) - [中文分词接口:免费档位下的限流与调用策略](https://www.showapi.com/guides/chinese-segmentation-free-tier-269) - **本系列共 11 篇**:查看[中文分词接口指南总目录](https://www.showapi.com/guides/chinese-segmentation-guides-269)