免费中文分词(文本处理):如何用接口做人名/地名/机构名识别(NER 实战)
免费中文分词文本处理中文NLPAPI教程ShowAPI # 免费中文分词(文本处理):如何用接口做人名/地名/机构名识别(NER 实战)
> 接口:人名识别(2663-2) / 地名识别(2663-3) / 机构名识别(2663-4)|是否免费:是(含档位限制)|返回格式:JSON|适用人群:内容运营、爬虫/资讯处理开发者|阅读时间:约 7 分钟
## 核心要点
- 三个识别接入点分别抽「人名 / 地名 / 机构名」,返回都是「词 + 词性」对象数组(`names` / `places` / `organs`)。
- 人名识别(2663-2)的 `type` 支持 `中文`(默认)、`trans`(音译人名)、`jpn`(日本人名)。
- 把三个接入点串起来,就能从一段文本里一次性抽出人物、地点、机构三类实体。
## Why
资讯聚合、简历解析、合同审查,第一步往往是「这段话里都有谁、在哪、什么单位」。自己写 NER 模型成本高、标注烦。ShowAPI 把三类实体识别拆成三个接入点,发文本拿结果,零模型训练。对中小团队做内容结构化、舆情监控,是最快的落地方式。
## What
**接口速览**
| 接入点 | 路径 | 必填参数 | 可选参数 | 返回字段 |
|------|------|---------|---------|---------|
| 人名识别 | 2663-2 | `text` | `type`(中文/trans/jpn) | `names`: [{word, pos}] |
| 地名识别 | 2663-3 | `text` | — | `places`: [{word, pos}] |
| 机构名识别 | 2663-4 | `text` | — | `organs`: [{word, pos}] |
> 文档备注:机构名识别(2663-4)在官方文档的参数描述处写成了「需要识别地名的内容」,疑似文案笔误;它实际返回 `organs`(机构名列表)。调用方式与地名识别一致,抽的是机构名。
## How
一段新闻同时抽三类实体:
```python
import requests
APPKEY = "YOUR_APPKEY"
BASE = "https://route.showapi.com/2663-"
def extract(path, text, **extra):
resp = requests.post(BASE + path, params={"appKey": APPKEY},
data={"text": text, **extra}, timeout=10).json()
body = resp["showapi_res_body"]
if body.get("ret_code") != 0:
raise RuntimeError(body.get("remark"))
return body
text = "马云创办的阿里巴巴位于杭州,与腾讯在深圳竞争。"
persons = extract("2", text, type="中文").get("names", [])
places = extract("3", text).get("places", [])
orgs = extract("4", text).get("organs", [])
print("人名:", [p["word"] for p in persons])
print("地名:", [p["word"] for p in places])
print("机构:", [o["word"] for o in orgs])
```
**cURL(人名识别,音译类型)**
```bash
curl -X POST "https://route.showapi.com/2663-2?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
--data-urlencode "text=乔布斯创立了苹果公司" \
--data-urlencode "type=trans"
```
## 返回示例与解析
人名识别(2663-2)返回:
```json
{
"showapi_res_body": {
"ret_code": 0,
"remark": "成功",
"names": [ { "word": "马云", "pos": "nr" } ]
}
}
```
- `word`:识别出的实体文本。
- `pos`:词性标注(`nr` 常为人名、`ns` 常为地名、`nt` 常为机构名,具体以实际返回为准)。
## 进阶 / 边界
- **音译 / 日本人名**:处理外文译名或日文来源文本时,把 2663-2 的 `type` 设为 `trans` 或 `jpn`,识别率更贴合对应语料。
- **免费档可能返回空**:默认档位下 `names`/`places`/`organs` 可能为空数组(请求成功但无业务数据),见 [免费档位与调用策略](https://www.showapi.com/guides/cnseg-free-tier-2663)。
- **重叠与漏抽**:实体识别不保证 100% 覆盖,关键场景建议结合业务词典做二次校验。
## FAQ
**Q1:三个识别接口能一次调用全抽吗?**
不能合并,需分别调用 2663-2/3/4;上面示例已给出串联写法。
**Q2:人名识别的 type 怎么选?**
中文文本用默认 `中文`;外文译名用 `trans`;日文来源用 `jpn`。
**Q3:机构名识别文档写的是「识别地名」,是接口错了?**
接口本身抽的是机构名(`organs`),文档参数描述是笔误,以返回字段为准。
**Q4:返回的词性 pos 一定准吗?**
`pos` 是参考标注,具体取值以实际返回为准,不建议只靠 pos 做硬性过滤。
**Q5:实体为空是调用失败吗?**
很可能不是——免费档限制会导致空结果,先核对额度。
## 相关能力 / 下一步阅读
- [免费中文分词(文本处理):自动提取文章关键词与摘要](https://www.showapi.com/guides/cnseg-keywords-summary-2663)
- [免费中文分词(文本处理):内容平台自动化打标签——NER + 关键词抽取的标签流水线](https://www.showapi.com/guides/cnseg-tagging-2663)
- [免费中文分词(文本处理):返回结构与公共字段全解](https://www.showapi.com/guides/cnseg-response-2663)
> 本系列共 14 篇:查看[免费中文分词(文本处理)API 指南总目录](https://www.showapi.com/guides/cnseg-guides-2663)