Project Icon

kagome

纯Go实现的开源日语形态素分析工具 支持多种词典和分词模式

Kagome是一个用Go语言开发的开源日语形态素分析工具。它支持将MeCab-IPADIC和UniDic等多种词典嵌入二进制文件,并提供普通、搜索和扩展三种分词模式。Kagome可通过命令行、服务器或WebAssembly方式使用,具有性能高、易于集成和跨平台等特点,适用于各种日语文本处理任务。

GoDev Go Release Coverage Status Docker Pulls

Kagome v2

Kagome是一个用纯Go语言编写的开源日语形态素分析器。

可以将MeCab-IPADIC、UniDic(unidic-mecab)等词典/统计模型嵌入二进制文件中。

相比v1的改进

  • 词典在单独的仓库中维护,只将需要的词典嵌入二进制文件中。
  • 改进并增加了几个API。

词典

词典来源
MeCab IPADICmecab-ipadic-2.7.0-20070801github.com/ikawaha/kagome-dict/ipa
UniDICunidic-mecab-2.1.2_srcgithub.com/ikawaha/kagome-dict/uni

注意:IPADIC是MeCab所谓的"标准词典",其特点是能比UniDIC更直观地分割形态单位。相比之下,UniDIC将短语分解成更小的示例句子单位,以创建全文搜索的元数据。更多详情,请参阅wiki

实验性功能

词典来源
mecab-ipadic-NEologdmecab-ipadic-neologdgithub.com/ikawaha/kagome-ipa-neologd
Korean MeCabmecab-ko-dic-2.1.1-20180720github.com/ikawaha/kagome-dict-ko

搜索分词模式

Kagome具有类似Kuromoji的搜索分词模式。

  • 普通:常规分词
  • 搜索:使用启发式方法进行额外的分词,对搜索有用
  • 扩展:类似于搜索模式,但还会对未知词进行一元分词
未分词普通搜索扩展
関西国際空港関西国際空港関西 国際 空港関西 国際 空港
日本経済新聞日本経済新聞日本 経済 新聞日本 経済 新聞
シニアソフトウェアエンジニアシニアソフトウェアエンジニアシニア ソフトウェア エンジニアシニア ソフトウェア エンジニア
デジカメを買ったデジカメ を 買っ たデジカメ を 買っ たデ ジ カ メ を 買っ た

编程示例

package main

import (
	"fmt"
	"strings"
"github.com/ikawaha/kagome-dict/ipa"
"github.com/ikawaha/kagome/v2/tokenizer"
)

func main() {
	t, err := tokenizer.New(ipa.Dict(), tokenizer.OmitBosEos())
	if err != nil {
		panic(err)
	}
	// 分词
	fmt.Println("---分词---")
	seg := t.Wakati("すもももももももものうち")
	fmt.Println(seg)

	// 标记化
	fmt.Println("---标记化---")
	tokens := t.Tokenize("すもももももももものうち")
	for _, token := range tokens {
		features := strings.Join(token.Features(), ",")
		fmt.Printf("%s\t%v\n", token.Surface, features)
	}
}

输出:

---分词---
[すもも も もも も もも の うち]
---标记化---
すもも	名词,一般,*,*,*,*,すもも,スモモ,スモモ
も	助词,系助词,*,*,*,*,も,モ,モ
もも	名词,一般,*,*,*,*,もも,モモ,モモ
も	助词,系助词,*,*,*,*,も,モ,モ
もも	名词,一般,*,*,*,*,もも,モモ,モモ
の	助词,连体化,*,*,*,*,の,ノ,ノ
うち	名词,非自立,副词可能,*,*,*,うち,ウチ,ウチ

参考

实践:形态素分析 kagome v2

命令

安装

  • Go

    go install github.com/ikawaha/kagome/v2@latest
    
  • Homebrew

    # macOS和Linux(适用于AMD64和ARM64)
    brew install ikawaha/kagome/kagome
    
  • Docker

  • 手动安装

    • 对于手动安装,请从releases页面下载并解压适合您操作系统和架构的归档文件。
    • 请注意,解压后的二进制文件必须放置在具有执行权限的可访问目录中。

使用方法

$ kagome -h
日语形态素分析器 -- github.com/ikawaha/kagome/v2
用法:kagome <命令>
可用命令:
   [tokenize] - 命令行标记化(*默认)
   server - 运行标记化服务器
   lattice - 格子查看器
   sentence - 简单句子分割器
   version - 显示版本

tokenize [-file 输入文件] [-dict 词典文件] [-userdict 用户词典文件] [-sysdict (ipa|uni)] [-simple false] [-mode (normal|search|extended)] [-split] [-json]
  -dict string
    	词典
  -file string
    	输入文件
  -json
    	以JSON格式输出
  -mode string
    	标记化模式(normal|search|extended)(默认为"normal")
  -simple
    	显示简化的词典内容
  -split
    	使用简单句子分割器
  -sysdict string
    	系统词典类型(ipa|uni)(默认为"ipa")
  -udict string
    	用户词典

标记化命令

% # 交互式/REPL模式
% kagome
すもももももももものうち
すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
% # 通过管道输入标准输入
echo "すもももももももものうち" | kagome
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
% # JSON输出
% echo "猫" | kagome -json | jq .
[
  {
    "id": 286994,
    "start": 0,
    "end": 1,
    "surface": "猫",
    "class": "KNOWN",
    "pos": [
      "名詞",
      "一般",
      "*",
      "*"
    ],
    "base_form": "猫",
    "reading": "ネコ",
    "pronunciation": "ネコ",
    "features": [
      "名詞",
      "一般",
      "*",
      "*",
      "*",
      "*",
      "猫",
      "ネコ",
      "ネコ"
    ]
  }
]
echo "私ははにわよわわわんわん" | kagome -json | jq -r '.[].pronunciation'
ワタシ
ワ
ハニワ
ヨ
ワ
ワ
ワンワン

服务器命令

API

启动服务器并尝试访问"/tokenize"端点。

% kagome server &
% curl -XPUT localhost:6060/tokenize -d'{"sentence":"すもももももももものうち", "mode":"normal"}' | jq .

Web应用

webapp

GitHub页面: https://ikawaha.github.io/kagome/

启动服务器并访问http://localhost:6060。 (为了绘制格子图,演示应用使用graphviz。您需要安装graphviz。)

% kagome server &

格子命令

分词过程的调试工具以graphviz dot格式输出格子图。

% kagome lattice 私は鰻 | dot -Tpng -o lattice.png

lattice

Docker

Docker

# 兼容架构: AMD64, Arm64, Arm32 (Arm v5, v6 和 v7)
docker pull ikawaha/kagome:latest

或者,您可以从 GitHub 容器注册表拉取

docker pull ghcr.io/ikawaha/kagome:latest


```sh
# 交互式/REPL 模式
docker run --rm -it ikawaha/kagome:latest

# 如果从 GitHub 容器注册表拉取
docker run --rm -it ghcr.io/ikawaha/kagome:latest
# 服务器模式(http://localhost:6060)
docker run --rm -p 6060:6060 ikawaha/kagome:latest server

# 如果从 GitHub 容器注册表拉取
docker run --rm -p 6060:6060 ghcr.io/ikawaha/kagome:latest server

构建为 WebAssembly

您可以在演示网站上查看 kagome wasm 的工作方式。 源代码可以在 ./_examples/wasm 中找到。

许可证

MIT

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号