ikawaha/kagomeKagome是一款用纯Go编写的开源日语形态分析器,核心功能是对日语文本进行分词和词性标注。其词典(如MeCab-IPADIC、UniDic等)和统计模型可嵌入二进制文件中,无需额外依赖库,便于部署。相比v1版本,v2将词典维护在独立仓库,支持按需嵌入,并优化了API设计,提供更灵活的使用方式。
Kagome支持多种主流日语词典,可根据需求选择嵌入:
| 词典类型 | 来源版本 | 对应包地址 |
|---|---|---|
| MeCab IPADIC | mecab-ipadic-2.7.0-20070801 | github.com/ikawaha/kagome-dict/ipa |
| UniDic | unidic-mecab-2.1.2_src | github.com/ikawaha/kagome-dict/uni |
实验性词典(需单独集成):
| 词典类型 | 来源版本 | 对应包地址 |
|---|---|---|
| mecab-ipadic-NEologd | mecab-ipadic-neologd | github.com/ikawaha/kagome-dict-ipa-neologd |
| 韩语MeCab | mecab-ko-dic-2.1.1-20180720 | github.com/ikawaha/kagome-dict-ko |
提供三种分词模式以适应不同场景,类似Kuromoji的分词策略:
| 模式 | 描述 |
|---|---|
| 普通(Normal) | 常规分词,适合标准文本处理 |
| 搜索(Search) | 采用启发式算法进行额外分词,提升搜索场景下的召回率 |
| 扩展(Extended) | 在搜索模式基础上,对未知词进行单字符分词,适合细粒度文本分析 |
分词效果对比:
| 未分词文本 | 普通模式输出 | 搜索模式输出 | 扩展模式输出 |
|---|---|---|---|
| 関西国際空港 | 関西国際空港 | 関西 国際 空港 | 関西 国際 空港 |
| 日本経済新聞 | 日本経済新聞 | 日本 経済 新聞 | 日本 経済 新聞 |
| シニアソフトウェアエンジニア | シニアソフトウェアエンジニア | シニア ソフトウェア エンジニア | シニア ソフトウェア エンジニア |
| デジカメを買った | デジカメ を 買っ た | デジカメ を 買っ た | デ ジ カ メ を 買っ た |
从Docker Hub拉取官方镜像:
bashdocker pull ikawaha/kagome
直接运行容器进行交互式分词(默认使用IPA词典和普通模式):
bashdocker run -it --rm ikawaha/kagome
输入日语文本后回车,即可获得分词结果:
すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
使用搜索模式和UniDic词典分析文本:
bashdocker run -it --rm ikawaha/kagome tokenize -mode search -sysdict uni
启动后台服务(默认端口6060),通过API提供分词功能:
bashdocker run -d -p 6060:6060 --name kagome-server ikawaha/kagome server
通过curl调用API(需指定sentence和mode参数):
bashcurl -X PUT http://localhost:6060/tokenize -d '{"sentence":"日本経済新聞", "mode":"search"}'
返回JSON格式分词结果:
json{ "tokens": [ {"surface":"日本","features":["名詞","固有名詞","地域","国","*","*","日本","ニッポン","ニッポン"]}, {"surface":"経済","features":["名詞","一般","*","*","*","*","経済","ケイザイ","ケイザイ"]}, {"surface":"新聞","features":["名詞","一般","*","*","*","*","新聞","シンブン","シンブン"]} ] }
挂载本地文件到容器,对文件内容进行分词:
bash# 准备本地输入文件input.txt docker run -it --rm -v $(pwd)/input.txt:/data/input.txt ikawaha/kagome tokenize -file /data/input.txt
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| -file | string | 输入文件路径(为空时进入交互式模式) | 空 |
| -dict | string | 自定义词典文件路径(覆盖系统词典) | 空 |
| -userdict | string | 用户词典文件路径(补充系统词典) | 空 |
| -sysdict | string | 系统词典类型,可选ipa或uni | ipa |
| -simple | bool | 是否仅显示表面分词结果(不显示词性等详细特征) | false |
| -mode | string | 分词模式,可选normal、search或extended | normal |
示例:使用用户词典并简化输出:
bashdocker run -it --rm -v $(pwd)/user.dic:/data/user.dic ikawaha/kagome tokenize -userdict /data/user.dic -simple true
启动HTTP服务,支持通过API调用分词功能,主要参数:
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| -port | int | 服务监听端口 | 6060 |
| -host | string | 服务绑定地址 | 0.0.0.0 |
示例:指定端口启动服务:
bashdocker run -d -p 8080:8080 ikawaha/kagome server -port 8080
生成分词过程的可视化文件(Graphviz dot格式):
bashdocker run -it --rm ikawaha/kagome lattice "私は鰻" > lattice.dot # 需本地安装graphviz以生成图片 dot -Tpng lattice.dot -o lattice.png
创建docker-compose.yml部署Kagome服务:
yamlversion: '3' services: kagome: image: ikawaha/kagome container_name: kagome-service ports: - "6060:6060" command: server -port 6060 # 启动HTTP服务 volumes: - ./user.dic:/app/user.dic # 挂载用户词典(可选) restart: unless-stopped
启动服务:
bashdocker-compose up -d
MIT许可证
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务