Go语言中文网 为您找到相关结果 29

Go语言的分词器(sego)

今天,主要来介绍一个Go语言的中文分词器,即sego。本分词器是由陈辉写的,他的微博在这里,github详 见此处。由于之前他在Google,所以对Go语言特别熟悉。sego的介绍如下 sego是Go语言的中文分词器,词典用前缀树实现, 分词器算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。 分词速度单线程2.7MB/s,goroutines并发13MB/s, 处理器Core i7-3615QM 2.30GHz 8核。 接下来,以如下几个方面来介绍sego 1. sego的安装 2. sego的原理 3. sego的使用 1. sego的安装 首先,在Go语言中,有很多第三方包,可以帮助我们实现某些特定的功能。比如这里...阅读全文

博文 2015-03-26 23:00:08 ACdreamers

Go中文分词 Sego

[词典](https://github.com/huichen/sego/blob/master/dictionary.go)用双数组trie(Double-Array Trie)实现, [分词器](https://github.com/huichen/sego/blob/master/segmenter.go)算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行[JSON RPC服务](https://github.com/huichen/sego/blob/master/server/server.go)。 分词速度[单线程](https://github.com/huichen/sego/blob/master/tools/bench...阅读全文

开源项目 2016-04-17 16:00:00 huichen

golang分词工具sego的使用

使用的库是:github.com/huichen/sego // 载入词典 var segmenter sego.Segmenter //自带的分词库信息 segmenter.LoadDictionary("../github.com/huichen/sego/data/dictionary.txt") // 分词 text := []byte("使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大") segments := segmenter.Segment(text) // 处理分词结果 // 支持普通模式和搜索模式两种分词,见代码中SegmentsToString函数的注释。 fmt.Println(sego.Segment...阅读全文

博文 2017-11-14 07:03:06 迷路的阿修罗

go 调用c dll,如何返回一个struct结构

我想封装nlpir的分词函数,其中有个函数 ```c result_t * NLPIR_ParagraphProcessA(const char *sParagraph,int *pResultCount,bool bUserDict=true) ``` result_t定义 ```c struct result_t{ int start; //start position,词语在输入句子中的开始位置 int length; //length,词语的长度 char sPOS[POS_SIZE];//word type,词性ID值,可以快速的获取词性表 int iPOS;//词性 int word_ID; //如果是未登录词,设成或者-1 int wor...阅读全文

Go语言统计中文词语的个数,分词.

主要目的是统计一篇文章中的出现词语最多的个数,目前只是出个大概的框架,统计出来的结果只有两种, 一种是两个字的一种是三个字的,而且准确率不高,需要优化的地方太多, 先记下来,回头闲了继续优化一下,把准确率和处理速度提上来. 菜鸟写的不好,望大家多多指教.

package main import ( "fmt" "io/ioutil" "strings" ) var Tri map[string]int = make(map[string]int) var Dou map[string]int = make(map[string]int) var Num int = 2 var Path string = "test.t...阅读全文

博文 2015-06-17 23:07:39 fyxichen

Go 语言高效分词gse

Go 语言高效分词, 支持英文、中文、日文等 [词典](https://github.com/go-ego/gse/blob/master/dictionary.go)用双数组trie(Double-Array Trie)实现, [分词器](https://github.com/go-ego/gse/blob/master/segmenter.go)算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行[JSON RPC服务](https://github.com/go-ego/gse/blob/master/server/server.go)。 分词速度[单线程](https://github.com/go-ego/gse/blob/ma...阅读全文

为什么说程序员一定要看 ElasticSearch 源码

前提 人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。在我的电脑本地写了几篇 ElasticSearch 的源码解析了,回过头来想想应该也写一篇为何我会去看它的源码?为什么呢?下面我讲讲自己从接触搜索到现在看源码的过程!第一次接触搜索 搜索,我们首先想到的是搜索引擎:Google、百度,这个就算是接触的最早的了。我自己项目里面接触搜索是大二暑假那时练习的一个项目...阅读全文

博文 2018-12-21 20:34:42 Java高级架构狮

中文分词器goscws

## golang goscws中文分词 scws是一个很好的中文分词库,由于项目中用到scws分词但go语言没有很好用的绑定,于是就自己 写了goscws,并且他支持协程分词。 ## 例子: 根据 SendText 设定的文本内容,返回一系列切好的词汇 ``` gs := goscws.NewScws() gs.SetCharset("utf8") err := gs.SetDict("/usr/local/scws/etc/dict.utf8.xdb", goscws.SCWS_XDICT_MEM) if err != nil { log.Println(err) } err = gs.SetRule("/usr/local/...阅读全文

开源项目 2018-07-19 20:32:32 jk0011

riot search v0.10.0 发布, 优化引擎和分词等

Riot v0.10.0, Danube River 发布了. Go 开源,分布式,简单高效的搜索引擎 项目地址: https://github.com/go-ego/riot 主要变更: - [NEW] 增加 heartbeat - [NEW] Add go dependency package to vendor - [NEW] 增加 codecov - [NEW] Add context cancel - [NEW] 更新 gse 和 support Japanese - [NEW] 更新 [gse](https://github.com/go-ego/gse) 1. 更新加载字典方法增加默认字典 2. 增加多个字典兼容不同语言 - [...阅读全文

Go 语言高效分词, 支持英文、中文、日文等

Go 语言高效分词, 支持英文、中文、日文等 词典用双数组trie(Double-Array Trie)实现, 分词器算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。 分词速度单线程9MB/s,goroutines并发42MB/s(8核Macbook Pro)。 ## 安装/更新 ``` go get -u github.com/go-ego/gse ``` ## Build-tools ``` go get -u github.com/go-ego/re ``` ### re gse To create a new gse application ``` $...阅读全文

Go 语言文本处理库Prose Go

Prose 是一款用于Go 语言的文本处理库(主要是英文),支持 okenization(分词)、part-of-speech tagging(词性标注)、named-entity extraction(命名实体提取)等。  [Tokenizing](https://github.com/jdkato/prose#tokenizing-godoc) [Tagging](https://github.com/jdkato/prose#tagging-godoc) [Transforming](https://github.com/jdkato/prose#transforming-godoc) [Summarizing](https://github.com/jdkato/pros...阅读全文

Go中文分词包 cwsharp-go

Go中文分词库,支持中英文,混合词组,自定义字典。 # 安装&运行 go get github.com/zhengchun/cwsharp-go go run test.go # 说明 * simple - 简单的分词包,提供基本的字母或数字的分词功能,输出单个中文字符(一元分词) * bigram - 二元分词包 * mmseg - 基于词典的分词包,支持自定义字典和中英文混合 go run test.g...阅读全文

渣渣菜鸡为什么要看 ElasticSearch 源码?

004 前提 人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。 在我的电脑本地写了几篇 ElasticSearch 的源码解析了,回过头来想想应该也写一篇为何我会去看它的源码? 为什么呢?下面我讲讲自己从接触搜索到现在看源码的过程! 关注我 zhisheng 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/24...阅读全文

博文 2018-08-18 09:34:48 zhisheng_tian

年中记录与挖坑

记录李航大佬说过(原文链接) 计算机上达到和人同等的对话能力还非常困难。现在的技术,一般是数据驱动,基于机器学习的。 单轮对话有基于分析的,基于检索的,基于生成的方法。 好吧, 我也感觉基于检索的是low的, 但是现在各家智能音箱貌似都没有突破这个坎. 大家听到的siri的b-box, 背后是一个无聊的逗逼程序员; 小爱同学的惊人语录, 写语料也许是一群抠脚大汉. 这半年的工作, 主要集中在开发一个基于检索的语义理解平台, 最近几天刚刚完成了第三版的进化. 初代目 去年年底, 刚来这里接手这项工作的时候, 老大给我的架构是简单的纯检索, 基于ES, 把事先编好的模板写到搜索引擎里. 每次收到前台请求, 将asr获得的文本扔到ES里搜, 一开始模板量比较少的时候, 分类效果挺不错的, 甚至还有...阅读全文

博文 2018-09-01 16:35:00 MashoO

Gse v0.10.0 发布了, Go 高性能分词

Go 语言高效分词, 支持英文、中文、日文等 词典用双数组trie(Double-Array Trie)实现, 分词器算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。 项目地址: https://github.com/go-ego/gse ``` package main import ( "fmt" "github.com/go-ego/gse" ) func main() { var seg gse.Segmenter seg.LoadDict("zh,testdata/test_dict.txt,testdata/test_dict1.txt") ...阅读全文

Bleve目录结构

bleve是一个全文搜索引擎,golang里对标java的lucene,但是在结果封装等方面又借鉴了Elasticsearch很多设计,不得不说,不背负历史包袱更方便拨丝抽茧。 本章开始我们尝试分析bleve的源码,个人是不喜欢读他人源码的,1.思想受限。2.破坏自己的风格。当然最主要的是读代码比写代码难 -_-! . 如果你能很好很快的hold住一份复杂代码,你的功底至少比作者高出1个level才实际。不过这不影响咱们读代码。懂不懂不重要,重要的是读没读是吧哈哈。 废话不多说了,直接上一个图,然后嫖一下官网文档,本章交差 image 上图是bleve的目录结构。golang有着丧心病狂的包引用洁癖,所以go语言的程序分层相当讲究自上而下,这样也很方便阅读。 bleve 是top-level...阅读全文

golang goscws中文分词

## golang goscws中文分词 scws是一个很好的中文分词库,由于项目中用到scws分词但go语言没有很好用的绑定,于是就自己 写了goscws,并且他支持协程分词。 ## 例子: 根据 SendText 设定的文本内容,返回一系列切好的词汇 ``` gs := goscws.NewScws() gs.SetCharset("utf8") err := gs.SetDict("/usr/local/scws/etc/dict.utf8.xdb", goscws.SCWS_XDICT_MEM) if err != nil { log.Println(err) } err = gs.SetRule("/usr/local/scws/etc/rules.utf8.ini") if er...阅读全文

一道简单的分词程序

**题目:** > 给出字符串dogandcat及字典{"do", "d", "gand", "g", "and", "dog", "cat", "c", "at", "in", "play", "i", "nplay"}, > 找出组成字符串的所以可能的单词组合。 之前用haskell写过一个实现,但接触golang之后,发现可以写成更简明的版本,代码如下: ``` package main import ( "fmt" ) var word = "dogandcat" var dicts = []string{"do", "d", "gand", "g", "and", "dog", "cat", "c", "at", "in", "play", "i", "nplay"} var re...阅读全文

博文 2017-09-29 04:50:15 aliate

Go 语言开发的搜索引擎 bleve

全文检索领域,Elasticsearch 应该是当之无愧的大佬了,当对与一些小的项目来说还是过于厚重了,不想用 Elasticsearch。只好搜寻其他能用的项目。目前自己的网站正好用 golang 来重后台,搜寻一下 go 语言有哪些可以用的开源项目,刚好看到一篇文章。转载记录一下。 先安利一个 Go 语言开发的搜索引擎 bleve,目前看来这应该是 Go 语言开发的搜索引擎里面最有潜力,或者说最不像玩具的搜索引擎。 简单试用了一下体验还可以,并试探性的提了一个关于打版本标签的 issue ,作者的回复响应速度也很快。 网上搜的资料上显示 bleve 是由 CouchBase 团队打造出来的。 但是我比较不理解的是为什么看了一下代码提交的commit ,主要都是由作者一个人提交的代码。 这...阅读全文

博文 2019-08-21 00:02:42 烈日星辰

自然语言处理中的分词问题总结

众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。本文转载自明略研究院的技术经理牟小峰老师讲授的语言处理中的分词问题。 如何界定分词 中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程;在英文中,单词之间是以空格作为自然分界符,汉语中词没有一个形式上的分界符。(见百度百科) 正因为缺乏形式上的分界符,导致我们对词的认定会出现很大的偏差。1996 年 Sproat 等通过对 6 个母语为汉语的人进行调研,让这 6 人对同一篇中文文本进行人工切分,文本包括 100 个句子,最后统计认同率,见下表: 图1 不仅普...阅读全文

博文 2018-10-26 12:34:40 左手中的倒影

ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统

​ElasticSearch+Spark 构建高匹配度搜索服务+千人千面推荐系统【点击下载】基于大众点评搜索以及推荐业务,从企业实际项目落地实践的角度出发,在使用SpringBoot加mybatis完成用户登录、注册、商家入驻以及结合前端模板搭建运营后台门店服务管理功能后,借助ElasticSearch的最新版本ES7逐步迭代,完成高相关性进阶搜索服务,并基于spark mllib2.4.4构建个性化千人千面推荐系统。适合人群想了解EasticSearch,对搜索推荐系统感兴趣,符合技术储备的同学技术储备要求熟悉JavaWeb基本应用了解MySQL常用命令章节目录:第1章 课程导学【终于遇到你】本章综合讲述了点评搜索推荐课程的项目业务背景,架构设计理念以及所需要用到的核心技术能力。1-1 课...阅读全文

博文 2019-12-05 01:43:31 xiaomengwa

ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统

​ElasticSearch+Spark 构建高匹配度搜索服务+千人千面推荐系统 【点击下载】基于大众点评搜索以及推荐业务,从企业实际项目落地实践的角度出发,在使用SpringBoot加mybatis完成用户登录、注册、商家入驻以及结合前端模板搭建运营后台门店服务管理功能后,借助ElasticSearch的最新版本ES7逐步迭代,完成高相关性进阶搜索服务,并基于spark mllib2.4.4构建个性化千人千面推荐系统。适合人群想了解EasticSearch,对搜索推荐系统感兴趣,符合技术储备的同学技术储备要求熟悉JavaWeb基本应用了解MySQL常用命令章节目录:第1章 课程导学【终于遇到你】本章综合讲述了点评搜索推荐课程的项目业务背景,架构设计理念以及所需要用到的核心技术能力。1-1 ...阅读全文

博文 2019-12-09 02:45:50 xiaochuangdan

ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统

第1章 课程导学【终于遇到你】本章综合讲述了点评搜索推荐课程的项目业务背景,架构设计理念以及所需要用到的核心技术能力。第2章 项目设计【项目需求到技术方案的完美执行过程】本章中讲述了如何模拟现实情况中,点评搜索推荐项目从业务需求BRD到产品需求PRD,最终到技术方案选型,架构设计及技术落地的整个过程。第3章 项目基础搭建【业务系统之基础能力】本章中使用了SpringBoot加Mybatis框架完成基础项目能力建设,并加装通用返回值,异常处理,页面请求资源等处理方式完善业务系统的基础能力建设。第4章 基础服务之用户,运营,商户能力建设【业务系统主体实现】本章中,将项目中业务系统能力划分为C端用户层和运营后台管理层,建设了面向用户的登录注册服务与面向运营配置后台的统一权限管理,并建设了一套点评商...阅读全文

ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统

​ElasticSearch+Spark 构建高匹配度搜索服务+千人千面推荐系统 完整无密 【点击下载】基于大众点评搜索以及推荐业务,从企业实际项目落地实践的角度出发,在使用SpringBoot加mybatis完成用户登录、注册、商家入驻以及结合前端模板搭建运营后台门店服务管理功能后,借助ElasticSearch的最新版本ES7逐步迭代,完成高相关性进阶搜索服务,并基于spark mllib2.4.4构建个性化千人千面推荐系统。适合人群想了解EasticSearch,对搜索推荐系统感兴趣,符合技术储备的同学技术储备要求熟悉JavaWeb基本应用了解MySQL常用命令章节目录:第1章 课程导学【终于遇到你】本章综合讲述了点评搜索推荐课程的项目业务背景,架构设计理念以及所需要用到的核心技术能力...阅读全文

博文 2019-12-11 02:41:31 xiaobaobao

ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统

**第1章 课程导学【终于遇到你】** 本章综合讲述了点评搜索推荐课程的项目业务背景,架构设计理念以及所需要用到的核心技术能力。 **第2章 项目设计【项目需求到技术方案的完美执行过程】** 本章中讲述了如何模拟现实情况中,点评搜索推荐项目从业务需求BRD到产品需求PRD,最终到技术方案选型,架构设计及技术落地的整个过程。 **第3章 项目基础搭建【业务系统之基础能力】** 本章中使用了SpringBoot加Mybatis框架完成基础项目能力建设,并加装通用返回值,异常处理,页面请求资源等处理方式完善业务系统的基础能力建设。 **第4章 基础服务之用户,运营,商户能力建设【业务系统主体实现】** 本章中,将项目中业务系统能力划分为C端用户层和运营后台...阅读全文