util.go
packagesego
import(
"bytes"
"fmt"
)
//输出分词结果为字符串
//
//有两种输出模式,以"中华人民共和国"为例
//
//普通模式(searchMode=false)输出一个分词"中华人民共和国/ns"
//搜索模式(searchMode=true)输出普通模式的再细致切分:
//"中华/nz人民/n共和/nz共和国/ns人民共和国/nt中华人民共和国/ns"
//
//搜索模式主要用于给搜索引擎提供尽可能多的关键字,详情请见Token结构体的注释。
funcSegmentsToString(segs[]Segment,searchModebool)(outputstring){
ifsearchMode{
for_,seg:=rangesegs{
output+=tokenToString(seg.token)
}
}else{
for_,seg:=rangesegs{
output+=fmt.Sprintf(
"%s/%s",textSliceToString(seg.token.text),seg.token.pos)
}
}
return
}
functokenToString(token*Token)(outputstring){
for_,s:=rangetoken.segments{
output+=tokenToString(s.token)
}
output+=fmt.Sprintf("%s/%s",textSliceToString(token.text),token.pos)
return
}
//输出分词结果到一个字符串slice
//
//有两种输出模式,以"中华人民共和国"为例
//
//普通模式(searchMode=false)输出一个分词"[中华人民共和国]"
//搜索模式(searchMode=true)输出普通模式的再细致切分:
//"[中华人民共和共和国人民共和国中华人民共和国]"
//
//搜索模式主要用于给搜索引擎提供尽可能多的关键字,详情请见Token结构体的注释。
funcSegmentsToSlice(segs[]Segment,searchModebool)(output[]string){
ifsearchMode{
for_,seg:=rangesegs{
output=append(output,tokenToSlice(seg.token)...)
}
}else{
for_,seg:=rangesegs{
output=append(output,seg.token.Text())
}
}
return
}
functokenToSlice(token*Token)(output[]string){
for_,s:=rangetoken.segments{
output=append(output,tokenToSlice(s.token)...)
}
output=append(output,textSliceToString(token.text))
returnoutput
}
//将多个字元拼接一个字符串输出
functextSliceToString(text[]Text)string{
varoutputstring
for_,word:=rangetext{
output+=string(word)
}
returnoutput
}
//返回多个字元的字节总长度
functextSliceByteLength(text[]Text)(lengthint){
for_,word:=rangetext{
length+=len(word)
}
return
}
functextSliceToBytes(text[]Text)[]byte{
varbufbytes.Buffer
for_,word:=rangetext{
buf.Write(word)
}
returnbuf.Bytes()
}
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
util.go的更多相关文章
- java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager
问题: 使用Springboot打包为war部署于Tomcat7中报错 java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringMa ...
- 【转】java.util.Arrays.asList 的用法
DK 1.4对java.util.Arrays.asList的定义,函数参数是Object[].所以,在1.4中asList()并不支持基本类型的数组作参数. JDK 1.5中,java.util.A ...
- Java程序日志:java.util.logging.Logger类
一.Logger 的级别 比log4j的级别详细,全部定义在java.util.logging.Level里面.各级别按降序排列如下:SEVERE(最高值)WARNINGINFOCONFIGFINEF ...
- Android中使用java.util.Properties犯的错
今天尝试使用java.util.Properties来保存应用配置,然而遇到了好几个问题,对于熟悉此内容的来说可能都是猪一样的错误,但难免有像我一样的新手再次遇到,希望此文能有所帮助. 错误1 jav ...
- java.util.ConcurrentModificationException 解决办法(转载)
今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码: public cla ...
- java util 下的concurrent包
------------------------------------------java util 下的concurrent包--------并发包--------------------.jav ...
- 原子类java.util.concurrent.atomic.*原理分析
原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...
- 错误:java.util.Map is an interface, and JAXB can't handle interfaces.
问题: 在整合spring+cxf时报错java.util.Map is an interface, and JAXB can't handle interfaces. 解决方法: 将服务端的serv ...
- 解决springmvc报No converter found for return value of type: class java.util.ArrayList问题
一.背景 最近闲来无事,想自己搭建一套Spring+SpringMVC+Mybatis+Mysql的环境(搭建步骤会在以后博客中给出),结果运行程序时,适用@ResponseBody注解进行返回Lis ...
- Java源码之 java.util.concurrent 学习笔记01
准备花点时间看看 java.util.concurrent这个包的源代码,来提高自己对Java的认识,努力~~~ 参阅了@梧留柒的博客!边看源码,边通过前辈的博客学习! 包下的代码结构分类: 1.ja ...
随机推荐
- javascript中通过元素id和name直接取得元素
我们知道一些第三方的js库对如何快速选取html中的元素做了一些简化,貌似十分高深莫测,其实也不然.而且js本身自带了对于特殊元素的简便选取的方法,下面就为大家简单介绍下. 在html中,一般最直接的 ...
- OpenShift实战(七):OpenShift定制镜像S2I
1.基础镜像制作 由于公司的程序是Java开发,上线发布使用的是maven,如果使用openshift自带的S2I,每次都会全量拉取代码(代码比较多,每次全量拉太慢),然后每次打包都会再一次下载mav ...
- 经典Console案例
/*下面的示例演示 WindowLeft.WindowTop.WindowWidth.WindowHeight.BufferWidth.BufferHeight 和 CursorVisible 属性以 ...
- CSS position 笔记+实验
目录: 1.static 2.relative 3.absolute 4.fixed 5.实验:static, relative, absolute中,父元素-子元素高度关系 6.z-index 7. ...
- Python高阶函数之 - 装饰器
高阶函数: 1. 函数名可以作为参数传入 2. 函数名可以作为返回值. python装饰器是用于拓展原来函数功能的一种函数 , 这个函数的特殊之处在于它的返回值也是一个函数 , 使用pyth ...
- 百度AI技术QQ群
百度语音QQ群 648968704 视频分析QQ群 632473158 DuerOSQQ群 604592023 图像识别QQ群 649285136 文字识别QQ群 631977213 理解与交互技术U ...
- C#语言中的XmlSerializer类的XmlSerializer.Deserialize (Stream)方法举例详解
包含由指定的 XML 文档反序列化 Stream. 命名空间: System.Xml.Serialization程序集: System.Xml(位于 System.Xml.dll) 注意: 反序 ...
- require、缓存
什么是require? -Node使用CommonJS模块规范,内置require函数用于加载模块文件 -require的基本功能是>读入并执行一个javascript文件,然后返回该模块的ex ...
- 解决vue在ios或android中用webview打开H5链接时#号后面的参数被忽略问题angular同样适用
在ios或android如果直接用webview在打开H5链接例如: 打开:http://localhost:8080/#/answer?id=1509335039582001 会变成 http:// ...
- 使用Selenium对新浪微博模拟登录
Selenium的配置 在项目中引入Selenium库 下载chromedriver.exe 在项目代码中加入chromedriver位置的配置 使用Selenium Selenim语法 智能等待 隐 ...