在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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 > |
请发表评论