• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

util.go

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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 >

 
 
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言学习之路-2-变量与常量发布时间:2022-07-10
下一篇:
GO基础之Map发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap