当前位置: 首页 > 软件库 > 程序开发 > 中文分词库 >

GoJieba

Go语言中文分词
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 中文分词库
软件类型 开源软件
地区 国产
投 递 者 凌伟泽
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

GoJieba 是 Jieba 分词 (结巴中文分词)的 Golang 语言版本分词库。

简介

  • 支持多种分词方式,包括: 最大概率模式, HMM新词发现模式, 搜索引擎模式, 全模式

  • 核心算法底层由C++实现,性能高效。

  • 字典路径可配置,NewJieba(...string), NewExtractor(...string) 可变形参,当参数为空时使用默认词典(推荐方式)

用法

go get github.com/yanyiwu/gojieba

分词示例

package main

import (
	"fmt"
	"strings"

	"github.com/yanyiwu/gojieba"
)

func main() {
	var s string
	var words []string
	use_hmm := true
	x := gojieba.NewJieba()
	defer x.Free()

	s = "我来到北京清华大学"
	words = x.CutAll(s)
	fmt.Println(s)
	fmt.Println("全模式:", strings.Join(words, "/"))

	words = x.Cut(s, use_hmm)
	fmt.Println(s)
	fmt.Println("精确模式:", strings.Join(words, "/"))
	s = "比特币"
	words = x.Cut(s, use_hmm)
	fmt.Println(s)
	fmt.Println("精确模式:", strings.Join(words, "/"))

	x.AddWord("比特币")
	s = "比特币"
	words = x.Cut(s, use_hmm)
	fmt.Println(s)
	fmt.Println("添加词典后,精确模式:", strings.Join(words, "/"))

	s = "他来到了网易杭研大厦"
	words = x.Cut(s, use_hmm)
	fmt.Println(s)
	fmt.Println("新词识别:", strings.Join(words, "/"))

	s = "小明硕士毕业于中国科学院计算所,后在日本京都大学深造"
	words = x.CutForSearch(s, use_hmm)
	fmt.Println(s)
	fmt.Println("搜索引擎模式:", strings.Join(words, "/"))

	s = "长春市长春药店"
	words = x.Tag(s)
	fmt.Println(s)
	fmt.Println("词性标注:", strings.Join(words, ","))

	s = "区块链"
	words = x.Tag(s)
	fmt.Println(s)
	fmt.Println("词性标注:", strings.Join(words, ","))

	s = "长江大桥"
	words = x.CutForSearch(s, !use_hmm)
	fmt.Println(s)
	fmt.Println("搜索引擎模式:", strings.Join(words, "/"))

	wordinfos := x.Tokenize(s, gojieba.SearchMode, !use_hmm)
	fmt.Println(s)
	fmt.Println("Tokenize:(搜索引擎模式)", wordinfos)

	wordinfos = x.Tokenize(s, gojieba.DefaultMode, !use_hmm)
	fmt.Println(s)
	fmt.Println("Tokenize:(默认模式)", wordinfos)

	keywords := x.ExtractWithWeight(s, 5)
	fmt.Println("Extract:", keywords)
}
我来到北京清华大学
全模式: 我/来到/北京/清华/清华大学/华大/大学
我来到北京清华大学
精确模式: 我/来到/北京/清华大学
比特币
精确模式: 比特/币
比特币
添加词典后,精确模式: 比特币
他来到了网易杭研大厦
新词识别: 他/来到/了/网易/杭研/大厦
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
搜索引擎模式: 小明/硕士/毕业/于/中国/科学/学院/科学院/中国科学院/计算/计算所/,/后/在/日本/京都/大学/日本京都大学/深造
长春市长春药店
词性标注: 长春市/ns,长春/ns,药店/n
区块链
词性标注: 区块链/nz
长江大桥
搜索引擎模式: 长江/大桥/长江大桥
长江大桥
Tokenize: [{长江 0 6} {大桥 6 12} {长江大桥 0 12}]

See example in jieba_testextractor_test

  • gojieba包特性: 1.其实是 封装了 C++版本的CppJieba 第三方包; 2.内部调用了静态文件(各种utf8文件),而且不是通过embed方式调用; 编译时无法包含静态文件;运行时 会报错如下: 表示无法打开对应的文件 /go/pkg/mod/github.com/ttys3/gojieba@v1.1.3/deps/cppjieba/DictTrie.hpp:203 FATAL e

  • sorry 写错了 有需要去看这个吧 https://github.com/ttys3/gojieba-bleve/blob/master/bleve_test.go 1.引用包 import ( "fmt" "github.com/yanyiwu/gojieba" "os" "strconv" "strings" "testing" "time" "github.com/ble

 相关资料
  • 问题内容: 我希望能够将中文,日文和韩文书写的字符识别为一般组和细分语言。原因如下: 将CJK视为一般团体: 我正在制作一个垂直脚本蒙古语。为此,我需要将文本行旋转90度,因为字形是水平存储在字体中的。但是,对于CJK语言,我需要再次将它们旋转回去,以使它们以正确的方向书写,而只是沿线叠放在一起。 将CJK区分为特定的语言: 我也在制作蒙古文字典,当用户输入CJK字符进行查找时,我想自动识别该语言

  • R 是用于统计分析,图形表示和报告的编程语言和软件环境。 R 由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 创建,目前由 R Development Core Team 开发。

  • Tea 语言是一个和 运行效率接近 C++、开发效率超越 Java 的编程语言。 编译为原生机器码(汇编),兼容主要操作系统和平台。 现代化语言,支持 GC、面向对象、函数式编程、类型推导等流行语言特性。 C 风格,Java 用户可以很快上手。更实用,更适合敏捷开发。 国产。全中文支持。

  • 中文版 Apple 官方 Swift 教程《The Swift Programming Language》 目录: 欢迎使用 Swift 关于 Swift(完成 By numbbbbb) Swift 初见(完成 By numbbbbb) Swift 教程 基础部分(完成 By numbbbbb, lyuka, JaySurplus) 基本操作符(完成 By @xielingwang) 字符串和字符

  • 先来一段前戏 机器学习的过程是训练模型和使用模型的过程,训练就是基于已知数据做统计学习,使用就是用统计学习好的模型来计算未知的数据。 机器学习分为有监督学习和无监督学习,文本分类也分为有监督的分类和无监督的分类。有监督就是训练的样本数据有了确定的判断,基于这些已有的判断来断定新的数据,无监督就是训练的样本数据没有什么判断,完全自发的生成结论。 无论监督学习还是无监督学习,都是通过某种算法来实现,而

  • 图表中的文字及语言相关的内容都是可以自定义及本地化的,下面详细说明。 一、语言及文字 Highcharts 中的文字可以通过 Highcharts.setOptions.lang 来设定,lang 属于全局配置,对当前页面的所有图表有效,对应的汉化后的配置是: // 全局配置,对当前页面的所有图表有效 Highcharts.setOptions({ lang:{ conte

  • 这个页面展示如何使用 Dart 的各个主要特性,从变量、运算符到类和库,并且假定你已经会使用其他编程语言编写代码。 要详细了解 Dart 核心库相关内容,请查阅 Dart 库教程。当你想对一个语言特性深入了解时,无论何时都可以查阅 Dart 语言规范。

  • Go 语言是一种编程语言,最初由 Robert Griesemer,Rob Pike 和 Ken Thompson 于 2007 年在 Google 开发。 它是一种静态类型语言,其语法类似于 C 语言。