Beispiel #1
0
func MergeSegment(segments []*segment.Segment, pairTerms []*term.PairTerm) []*segment.Segment {
	newSegments := make([]*segment.Segment, 0)

	var first, second *segment.Segment
	i, count := 1, len(segments)
	for {
		if i >= count {
			break
		}

		first = segments[i-1]
		second = segments[i]

		//fmt.Println("First: ", first, "Second: ", second)
		if first.End() != second.Start() {
			i = i + 1
			continue
		}

		firstKey := first.Text()
		secondKey := second.Text()
		key := firstKey + secondKey

		if IsPairTerm(key, pairTerms) {
			seg := segment.NewSegment(key, first.Start(), second.End())
			newSegments = append(newSegments, seg)
			i = i + 2
		} else {
			newSegments = append(newSegments, first)
			i = i + 1
		}
	}

	return newSegments
}
Beispiel #2
0
func main() {
	seg := segment.NewSegment()
	err := seg.Init("./dicts")
	if err != nil {
		fmt.Println("%v", err)
	}
	ret := seg.DoSegment(`盘古分词 简介: 盘古分词 是由eaglet 开发的一款基于字典的中英文分词组件
主要功能: 中英文分词,未登录词识别,多元歧义自动识别,全角字符识别能力
主要性能指标:
分词准确度:90%以上
处理速度: 300-600KBytes/s Core Duo 1.8GHz
用于测试的句子:
长春市长春节致词
长春市长春药店
IBM的技术和服务都不错
张三在一月份工作会议上说的确实在理
于北京时间5月10日举行运动会
我的和服务必在明天做好`)

	for cur := ret.Front(); cur != nil; cur = cur.Next() {
		w := cur.Value.(*dict.WordInfo)
		fmt.Print(w.Word, "(", w.Position, ",", w.Rank, ")/")
	}
}