diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..f64ceca
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+tokenizers/jieba.beleve/
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 6f363f5..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: go
-go:
- - 1.4.2
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
index a375a4d..f7ea0b0
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
#结巴分词 Go 语言版:Jiebago
-[](https://travis-ci.org/wangbin/jiebago) [](https://godoc.org/github.com/wangbin/jiebago)
+[](https://travis-ci.org/wangbin/jiebago) [](https://godoc.org/github.com/fumiama/jieba)
[结巴分词](https://github.com/fxsjy/jieba) 是由 [@fxsjy](https://github.com/fxsjy) 使用 Python 编写的中文分词组件,Iiebago 是结巴分词的 Golang 语言实现。
@@ -9,7 +9,7 @@
## 安装
```
-go get github.com/wangbin/jiebago/...
+go get github.com/fumiama/jieba/...
```
## 使用
@@ -20,7 +20,7 @@ package main
import (
"fmt"
- "github.com/wangbin/jiebago"
+ "github.com/fumiama/jieba"
)
var seg jiebago.Segmenter
@@ -62,7 +62,7 @@ func Example() {
【搜索引擎模式】: 小明 / 硕士 / 毕业 / 于 / 中国 / 科学 / 学院 / 科学院 / 中国科学院 / 计算 / 计算所 / , / 后 / 在 / 日本 / 京都 / 大学 / 日本京都大学 / 深造 /
```
-更多信息请参考[文档](https://godoc.org/github.com/wangbin/jiebago)。
+更多信息请参考[文档](https://godoc.org/github.com/fumiama/jieba)。
## 分词速度
diff --git a/analyse/example_test.go b/analyse/example_test.go
old mode 100644
new mode 100755
index f281234..af59fb4
--- a/analyse/example_test.go
+++ b/analyse/example_test.go
@@ -3,7 +3,7 @@ package analyse_test
import (
"fmt"
- "github.com/wangbin/jiebago/analyse"
+ "github.com/fumiama/jieba/analyse"
)
func Example_extractTags() {
diff --git a/analyse/idf.go b/analyse/idf.go
old mode 100644
new mode 100755
index 5ab8f33..678014e
--- a/analyse/idf.go
+++ b/analyse/idf.go
@@ -4,7 +4,7 @@ import (
"sort"
"sync"
- "github.com/wangbin/jiebago/dictionary"
+ "github.com/fumiama/jieba/dictionary"
)
// Idf represents a thread-safe dictionary for all words with their
diff --git a/analyse/idf.txt b/analyse/idf.txt
old mode 100644
new mode 100755
diff --git a/analyse/stop_words.txt b/analyse/stop_words.txt
old mode 100644
new mode 100755
diff --git a/analyse/stopwords.go b/analyse/stopwords.go
old mode 100644
new mode 100755
index b76d773..a4cc80a
--- a/analyse/stopwords.go
+++ b/analyse/stopwords.go
@@ -3,7 +3,7 @@ package analyse
import (
"sync"
- "github.com/wangbin/jiebago/dictionary"
+ "github.com/fumiama/jieba/dictionary"
)
// DefaultStopWordMap contains some stop words.
diff --git a/analyse/tag_extracker.go b/analyse/tag_extracker.go
old mode 100644
new mode 100755
index cf68075..c57f0e3
--- a/analyse/tag_extracker.go
+++ b/analyse/tag_extracker.go
@@ -6,7 +6,7 @@ import (
"strings"
"unicode/utf8"
- "github.com/wangbin/jiebago"
+ jiebago "github.com/fumiama/jieba"
)
// Segment represents a word with weight.
@@ -74,7 +74,7 @@ func (t *TagExtracter) LoadStopWords(fileName string) error {
func (t *TagExtracter) ExtractTags(sentence string, topK int) (tags Segments) {
freqMap := make(map[string]float64)
- for w := range t.seg.Cut(sentence, true) {
+ for _, w := range t.seg.Cut(sentence, true) {
w = strings.TrimSpace(w)
if utf8.RuneCountInString(w) < 2 {
continue
diff --git a/analyse/tag_extracker_test.go b/analyse/tag_extracker_test.go
old mode 100644
new mode 100755
diff --git a/analyse/textrank.go b/analyse/textrank.go
old mode 100644
new mode 100755
index 41dd489..d9399d0
--- a/analyse/textrank.go
+++ b/analyse/textrank.go
@@ -4,7 +4,7 @@ import (
"math"
"sort"
- "github.com/wangbin/jiebago/posseg"
+ "github.com/fumiama/jieba/posseg"
)
const dampingFactor = 0.85
diff --git a/analyse/textrank_test.go b/analyse/textrank_test.go
old mode 100644
new mode 100755
diff --git a/dict.txt b/dict.txt
old mode 100644
new mode 100755
diff --git a/dictionary.go b/dictionary.go
old mode 100644
new mode 100755
index ea50ebc..7350e1a
--- a/dictionary.go
+++ b/dictionary.go
@@ -4,7 +4,7 @@ import (
"math"
"sync"
- "github.com/wangbin/jiebago/dictionary"
+ "github.com/fumiama/jieba/dictionary"
)
// A Dictionary represents a thread-safe dictionary used for word segmentation.
diff --git a/dictionary/dictionary.go b/dictionary/dictionary.go
old mode 100644
new mode 100755
diff --git a/dictionary/dictionary_test.go b/dictionary/dictionary_test.go
old mode 100644
new mode 100755
diff --git a/dictionary/token.go b/dictionary/token.go
old mode 100644
new mode 100755
diff --git a/example_parallel_cut_test.go b/example_parallel_cut_test.go
old mode 100644
new mode 100755
index 99cf8e0..8e9f1a0
--- a/example_parallel_cut_test.go
+++ b/example_parallel_cut_test.go
@@ -1,4 +1,4 @@
-package jiebago_test
+package jiebago
import (
"bufio"
@@ -8,8 +8,6 @@ import (
"runtime"
"strings"
"time"
-
- "github.com/wangbin/jiebago"
)
type line struct {
@@ -18,7 +16,7 @@ type line struct {
}
var (
- segmenter = jiebago.Segmenter{}
+ segmenter = Segmenter{}
numThreads = runtime.NumCPU()
task = make(chan line, numThreads)
result = make(chan line, numThreads)
@@ -26,10 +24,7 @@ var (
func worker() {
for l := range task {
- var segments []string
- for segment := range segmenter.Cut(l.text, true) {
- segments = append(segments, segment)
- }
+ segments := segmenter.Cut(l.text, true)
l.text = fmt.Sprintf("%s\n", strings.Join(segments, " / "))
result <- l
diff --git a/example_test.go b/example_test.go
old mode 100644
new mode 100755
index 62c5e7a..174d327
--- a/example_test.go
+++ b/example_test.go
@@ -1,33 +1,24 @@
-package jiebago_test
+package jiebago
import (
"fmt"
-
- "github.com/wangbin/jiebago"
)
func Example() {
- var seg jiebago.Segmenter
+ var seg Segmenter
seg.LoadDictionary("dict.txt")
- print := func(ch <-chan string) {
- for word := range ch {
- fmt.Printf(" %s /", word)
- }
- fmt.Println()
- }
-
fmt.Print("【全模式】:")
- print(seg.CutAll("我来到北京清华大学"))
+ fmt.Println(seg.CutAll("我来到北京清华大学"))
fmt.Print("【精确模式】:")
- print(seg.Cut("我来到北京清华大学", false))
+ fmt.Println(seg.Cut("我来到北京清华大学", false))
fmt.Print("【新词识别】:")
- print(seg.Cut("他来到了网易杭研大厦", true))
+ fmt.Println(seg.Cut("他来到了网易杭研大厦", true))
fmt.Print("【搜索引擎模式】:")
- print(seg.CutForSearch("小明硕士毕业于中国科学院计算所,后在日本京都大学深造", true))
+ fmt.Println(seg.CutForSearch("小明硕士毕业于中国科学院计算所,后在日本京都大学深造", true))
// Output:
// 【全模式】: 我 / 来到 / 北京 / 清华 / 清华大学 / 华大 / 大学 /
// 【精确模式】: 我 / 来到 / 北京 / 清华大学 /
@@ -36,47 +27,41 @@ func Example() {
}
func Example_suggestFrequency() {
- var seg jiebago.Segmenter
+ var seg Segmenter
seg.LoadDictionary("dict.txt")
- print := func(ch <-chan string) {
- for word := range ch {
- fmt.Printf(" %s /", word)
- }
- fmt.Println()
- }
sentence := "超敏C反应蛋白是什么?"
fmt.Print("Before:")
- print(seg.Cut(sentence, false))
+ fmt.Println(seg.Cut(sentence, false))
word := "超敏C反应蛋白"
oldFrequency, _ := seg.Frequency(word)
frequency := seg.SuggestFrequency(word)
fmt.Printf("%s current frequency: %f, suggest: %f.\n", word, oldFrequency, frequency)
seg.AddWord(word, frequency)
fmt.Print("After:")
- print(seg.Cut(sentence, false))
+ fmt.Println(seg.Cut(sentence, false))
sentence = "如果放到post中将出错"
fmt.Print("Before:")
- print(seg.Cut(sentence, false))
+ fmt.Println(seg.Cut(sentence, false))
word = "中将"
oldFrequency, _ = seg.Frequency(word)
frequency = seg.SuggestFrequency("中", "将")
fmt.Printf("%s current frequency: %f, suggest: %f.\n", word, oldFrequency, frequency)
seg.AddWord(word, frequency)
fmt.Print("After:")
- print(seg.Cut(sentence, false))
+ fmt.Println(seg.Cut(sentence, false))
sentence = "今天天气不错"
fmt.Print("Before:")
- print(seg.Cut(sentence, false))
+ fmt.Println(seg.Cut(sentence, false))
word = "今天天气"
oldFrequency, _ = seg.Frequency(word)
frequency = seg.SuggestFrequency("今天", "天气")
fmt.Printf("%s current frequency: %f, suggest: %f.\n", word, oldFrequency, frequency)
seg.AddWord(word, frequency)
fmt.Print("After:")
- print(seg.Cut(sentence, false))
+ fmt.Println(seg.Cut(sentence, false))
// Output:
// Before: 超敏 / C / 反应 / 蛋白 / 是 / 什么 / ? /
// 超敏C反应蛋白 current frequency: 0.000000, suggest: 1.000000.
@@ -90,23 +75,17 @@ func Example_suggestFrequency() {
}
func Example_loadUserDictionary() {
- var seg jiebago.Segmenter
+ var seg Segmenter
seg.LoadDictionary("dict.txt")
- print := func(ch <-chan string) {
- for word := range ch {
- fmt.Printf(" %s /", word)
- }
- fmt.Println()
- }
sentence := "李小福是创新办主任也是云计算方面的专家"
fmt.Print("Before:")
- print(seg.Cut(sentence, true))
+ fmt.Println(seg.Cut(sentence, true))
seg.LoadUserDictionary("userdict.txt")
fmt.Print("After:")
- print(seg.Cut(sentence, true))
+ fmt.Println(seg.Cut(sentence, true))
// Output:
// Before: 李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /
// After: 李小福 / 是 / 创新办 / 主任 / 也 / 是 / 云计算 / 方面 / 的 / 专家 /
diff --git a/finalseg/finalseg.go b/finalseg/finalseg.go
old mode 100644
new mode 100755
index d09a139..ae6679c
--- a/finalseg/finalseg.go
+++ b/finalseg/finalseg.go
@@ -10,88 +10,86 @@ var (
reSkip = regexp.MustCompile(`(\d+\.\d+|[a-zA-Z0-9]+)`)
)
-func cutHan(sentence string) chan string {
- result := make(chan string)
- go func() {
- runes := []rune(sentence)
- _, posList := viterbi(runes, []byte{'B', 'M', 'E', 'S'})
- begin, next := 0, 0
- for i, char := range runes {
- pos := posList[i]
- switch pos {
- case 'B':
- begin = i
- case 'E':
- result <- string(runes[begin : i+1])
- next = i + 1
- case 'S':
- result <- string(char)
- next = i + 1
- }
+func cutHan(sentence string) []string {
+ result := make([]string, 0, 10)
+
+ runes := []rune(sentence)
+ _, posList := viterbi(runes, []byte{'B', 'M', 'E', 'S'})
+ begin, next := 0, 0
+ for i, char := range runes {
+ pos := posList[i]
+ switch pos {
+ case 'B':
+ begin = i
+ case 'E':
+ result = append(result, string(runes[begin:i+1]))
+ next = i + 1
+ case 'S':
+ result = append(result, string(char))
+ next = i + 1
}
- if next < len(runes) {
- result <- string(runes[next:])
- }
- close(result)
- }()
+ }
+ if next < len(runes) {
+ result = append(result, string(runes[next:]))
+ }
+
return result
}
// Cut cuts sentence into words using Hidden Markov Model with Viterbi
// algorithm. It is used by Jiebago for unknonw words.
-func Cut(sentence string) chan string {
- result := make(chan string)
+func Cut(sentence string) []string {
+ result := make([]string, 0, 10)
s := sentence
var hans string
var hanLoc []int
var nonhanLoc []int
- go func() {
- for {
- hanLoc = reHan.FindStringIndex(s)
- if hanLoc == nil {
- if len(s) == 0 {
- break
- }
- } else if hanLoc[0] == 0 {
- hans = s[hanLoc[0]:hanLoc[1]]
- s = s[hanLoc[1]:]
- for han := range cutHan(hans) {
- result <- han
- }
+
+ for {
+ hanLoc = reHan.FindStringIndex(s)
+ if hanLoc == nil {
+ if len(s) == 0 {
+ break
+ }
+ } else if hanLoc[0] == 0 {
+ hans = s[hanLoc[0]:hanLoc[1]]
+ s = s[hanLoc[1]:]
+ for _, han := range cutHan(hans) {
+ result = append(result, han)
+ }
+ continue
+ }
+ nonhanLoc = reSkip.FindStringIndex(s)
+ if nonhanLoc == nil {
+ if len(s) == 0 {
+ break
+ }
+ } else if nonhanLoc[0] == 0 {
+ nonhans := s[nonhanLoc[0]:nonhanLoc[1]]
+ s = s[nonhanLoc[1]:]
+ if nonhans != "" {
+ result = append(result, nonhans)
continue
}
- nonhanLoc = reSkip.FindStringIndex(s)
- if nonhanLoc == nil {
- if len(s) == 0 {
- break
- }
- } else if nonhanLoc[0] == 0 {
- nonhans := s[nonhanLoc[0]:nonhanLoc[1]]
- s = s[nonhanLoc[1]:]
- if nonhans != "" {
- result <- nonhans
- continue
- }
- }
- var loc []int
- if hanLoc == nil && nonhanLoc == nil {
- if len(s) > 0 {
- result <- s
- break
- }
- } else if hanLoc == nil {
- loc = nonhanLoc
- } else if nonhanLoc == nil {
- loc = hanLoc
- } else if hanLoc[0] < nonhanLoc[0] {
- loc = hanLoc
- } else {
- loc = nonhanLoc
- }
- result <- s[:loc[0]]
- s = s[loc[0]:]
}
- close(result)
- }()
+ var loc []int
+ if hanLoc == nil && nonhanLoc == nil {
+ if len(s) > 0 {
+ result = append(result, s)
+ break
+ }
+ } else if hanLoc == nil {
+ loc = nonhanLoc
+ } else if nonhanLoc == nil {
+ loc = hanLoc
+ } else if hanLoc[0] < nonhanLoc[0] {
+ loc = hanLoc
+ } else {
+ loc = nonhanLoc
+ }
+ result = append(result, s[:loc[0]])
+ s = s[loc[0]:]
+ }
+
return result
}
diff --git a/finalseg/finalseg_test.go b/finalseg/finalseg_test.go
old mode 100644
new mode 100755
index bafe4be..120a984
--- a/finalseg/finalseg_test.go
+++ b/finalseg/finalseg_test.go
@@ -5,14 +5,6 @@ import (
"testing"
)
-func chanToArray(ch chan string) []string {
- var result []string
- for word := range ch {
- result = append(result, word)
- }
- return result
-}
-
func TestViterbi(t *testing.T) {
obs := "我们是程序员"
states := []byte{'B', 'M', 'E', 'S'}
@@ -29,7 +21,7 @@ func TestViterbi(t *testing.T) {
func TestCutHan(t *testing.T) {
obs := "我们是程序员"
- result := chanToArray(cutHan(obs))
+ result := cutHan(obs)
if len(result) != 3 {
t.Fatal(result)
}
@@ -46,7 +38,7 @@ func TestCutHan(t *testing.T) {
func TestCut(t *testing.T) {
sentence := "我们是程序员"
- result := chanToArray(Cut(sentence))
+ result := Cut(sentence)
if len(result) != 3 {
t.Fatal(len(result))
}
@@ -59,11 +51,11 @@ func TestCut(t *testing.T) {
if result[2] != "程序员" {
t.Fatal(result[2])
}
- result2 := chanToArray(Cut("I'm a programmer!"))
+ result2 := Cut("I'm a programmer!")
if len(result2) != 8 {
t.Fatal(result2)
}
- result3 := chanToArray(Cut("程序员average年龄28.6岁。"))
+ result3 := Cut("程序员average年龄28.6岁。")
if len(result3) != 6 {
t.Fatal(result3)
}
diff --git a/finalseg/prob_emit.go b/finalseg/prob_emit.go
old mode 100644
new mode 100755
diff --git a/finalseg/prob_trans.go b/finalseg/prob_trans.go
old mode 100644
new mode 100755
diff --git a/finalseg/viterbi.go b/finalseg/viterbi.go
old mode 100644
new mode 100755
diff --git a/foobar.txt b/foobar.txt
old mode 100644
new mode 100755
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..5c39d78
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,29 @@
+module github.com/fumiama/jieba
+
+go 1.19
+
+require github.com/blevesearch/bleve v1.0.14
+
+require (
+ github.com/RoaringBitmap/roaring v0.4.23 // indirect
+ github.com/blevesearch/go-porterstemmer v1.0.3 // indirect
+ github.com/blevesearch/mmap-go v1.0.2 // indirect
+ github.com/blevesearch/segment v0.9.0 // indirect
+ github.com/blevesearch/snowballstem v0.9.0 // indirect
+ github.com/blevesearch/zap/v11 v11.0.14 // indirect
+ github.com/blevesearch/zap/v12 v12.0.14 // indirect
+ github.com/blevesearch/zap/v13 v13.0.6 // indirect
+ github.com/blevesearch/zap/v14 v14.0.5 // indirect
+ github.com/blevesearch/zap/v15 v15.0.3 // indirect
+ github.com/couchbase/vellum v1.0.2 // indirect
+ github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 // indirect
+ github.com/golang/protobuf v1.3.2 // indirect
+ github.com/golang/snappy v0.0.1 // indirect
+ github.com/mschoch/smat v0.2.0 // indirect
+ github.com/philhofer/fwd v1.0.0 // indirect
+ github.com/steveyen/gtreap v0.1.0 // indirect
+ github.com/tinylib/msgp v1.1.0 // indirect
+ github.com/willf/bitset v1.1.10 // indirect
+ go.etcd.io/bbolt v1.3.5 // indirect
+ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..208c413
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,125 @@
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo=
+github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
+github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
+github.com/blevesearch/bleve v1.0.14 h1:Q8r+fHTt35jtGXJUM0ULwM3Tzg+MRfyai4ZkWDy2xO4=
+github.com/blevesearch/bleve v1.0.14/go.mod h1:e/LJTr+E7EaoVdkQZTfoz7dt4KoDNvDbLb8MSKuNTLQ=
+github.com/blevesearch/blevex v1.0.0 h1:pnilj2Qi3YSEGdWgLj1Pn9Io7ukfXPoQcpAI1Bv8n/o=
+github.com/blevesearch/blevex v1.0.0/go.mod h1:2rNVqoG2BZI8t1/P1awgTKnGlx5MP9ZbtEciQaNhswc=
+github.com/blevesearch/cld2 v0.0.0-20200327141045-8b5f551d37f5/go.mod h1:PN0QNTLs9+j1bKy3d/GB/59wsNBFC4sWLWG3k69lWbc=
+github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo=
+github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M=
+github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0=
+github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA=
+github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac=
+github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ=
+github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s=
+github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs=
+github.com/blevesearch/zap/v11 v11.0.14 h1:IrDAvtlzDylh6H2QCmS0OGcN9Hpf6mISJlfKjcwJs7k=
+github.com/blevesearch/zap/v11 v11.0.14/go.mod h1:MUEZh6VHGXv1PKx3WnCbdP404LGG2IZVa/L66pyFwnY=
+github.com/blevesearch/zap/v12 v12.0.14 h1:2o9iRtl1xaRjsJ1xcqTyLX414qPAwykHNV7wNVmbp3w=
+github.com/blevesearch/zap/v12 v12.0.14/go.mod h1:rOnuZOiMKPQj18AEKEHJxuI14236tTQ1ZJz4PAnWlUg=
+github.com/blevesearch/zap/v13 v13.0.6 h1:r+VNSVImi9cBhTNNR+Kfl5uiGy8kIbb0JMz/h8r6+O4=
+github.com/blevesearch/zap/v13 v13.0.6/go.mod h1:L89gsjdRKGyGrRN6nCpIScCvvkyxvmeDCwZRcjjPCrw=
+github.com/blevesearch/zap/v14 v14.0.5 h1:NdcT+81Nvmp2zL+NhwSvGSLh7xNgGL8QRVZ67njR0NU=
+github.com/blevesearch/zap/v14 v14.0.5/go.mod h1:bWe8S7tRrSBTIaZ6cLRbgNH4TUDaC9LZSpRGs85AsGY=
+github.com/blevesearch/zap/v15 v15.0.3 h1:Ylj8Oe+mo0P25tr9iLPp33lN6d4qcztGjaIsP51UxaY=
+github.com/blevesearch/zap/v15 v15.0.3/go.mod h1:iuwQrImsh1WjWJ0Ue2kBqY83a0rFtJTqfa9fp1rbVVU=
+github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
+github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k=
+github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs=
+github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw=
+github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4=
+github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
+github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d h1:SwD98825d6bdB+pEuTxWOXiSjBrHdOl/UVp75eI7JT8=
+github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8=
+github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=
+github.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64=
+github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg=
+github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 h1:Ujru1hufTHVb++eG6OuNDKMxZnGIvF6o/u8q/8h2+I4=
+github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
+github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8=
+github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99 h1:twflg0XRTjwKpxb/jFExr4HGq6on2dEOmnL6FV+fgPw=
+github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/ikawaha/kagome.ipadic v1.1.2/go.mod h1:DPSBbU0czaJhAb/5uKQZHMc9MTVRpDugJfX+HddPHHg=
+github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U=
+github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ=
+github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/kljensen/snowball v0.6.0/go.mod h1:27N7E8fVU5H68RlUmnWwZCfxgt4POBJfENGMvNRhldw=
+github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
+github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
+github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ=
+github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
+github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
+github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
+github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
+github.com/steveyen/gtreap v0.1.0 h1:CjhzTa274PyJLJuMZwIzCO1PfC00oRa8d1Kc78bFXJM=
+github.com/steveyen/gtreap v0.1.0/go.mod h1:kl/5J7XbrOmlIbYIXdRHDDE5QxHqpk0cmkT7Z4dM9/Y=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
+github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
+github.com/tebeka/snowball v0.4.2/go.mod h1:4IfL14h1lvwZcp1sfXuuc7/7yCsvVffTWxWxCLfFpYg=
+github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok=
+github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8=
+github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU=
+github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
+github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
+github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc=
+github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
+github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
+go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
+golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 h1:LfCXLvNmTYH9kEmVgqbnsWfruoXZIrh4YBgqVHtDvw0=
+golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/jieba.go b/jieba.go
old mode 100644
new mode 100755
index efa04c1..d5de40e
--- a/jieba.go
+++ b/jieba.go
@@ -6,9 +6,9 @@ import (
"regexp"
"strings"
- "github.com/wangbin/jiebago/dictionary"
- "github.com/wangbin/jiebago/finalseg"
- "github.com/wangbin/jiebago/util"
+ "github.com/fumiama/jieba/dictionary"
+ "github.com/fumiama/jieba/finalseg"
+ "github.com/fumiama/jieba/util"
)
var (
@@ -72,7 +72,7 @@ func (seg *Segmenter) SuggestFrequency(words ...string) float64 {
}
} else {
word := words[0]
- for segment := range seg.Cut(word, false) {
+ for _, segment := range seg.Cut(word, false) {
if freq, ok := seg.dict.Frequency(segment); ok {
frequency *= freq
}
@@ -165,95 +165,93 @@ func (seg *Segmenter) calc(runes []rune) map[int]route {
return rs
}
-type cutFunc func(sentence string) <-chan string
+// ratio words and letters in an article commonly
+const (
+ RatioLetterWord float32 = 1.5
+ RatioLetterWordFull float32 = 1
+)
-func (seg *Segmenter) cutDAG(sentence string) <-chan string {
- result := make(chan string)
- go func() {
- runes := []rune(sentence)
- routes := seg.calc(runes)
- var y int
- length := len(runes)
- var buf []rune
- for x := 0; x < length; {
- y = routes[x].index + 1
- frag := runes[x:y]
- if y-x == 1 {
- buf = append(buf, frag...)
- } else {
- if len(buf) > 0 {
- bufString := string(buf)
- if len(buf) == 1 {
- result <- bufString
+type cutFunc func(sentence string) []string
+
+func (seg *Segmenter) cutDAG(sentence string) []string {
+ result := make([]string, 0, int(float32(len(sentence))/RatioLetterWord)+1)
+
+ runes := []rune(sentence)
+ routes := seg.calc(runes)
+ var y int
+ length := len(runes)
+ var buf []rune
+ for x := 0; x < length; {
+ y = routes[x].index + 1
+ frag := runes[x:y]
+ if y-x == 1 {
+ buf = append(buf, frag...)
+ } else {
+ if len(buf) > 0 {
+ bufString := string(buf)
+ if len(buf) == 1 {
+ result = append(result, bufString)
+ } else {
+ if v, ok := seg.dict.Frequency(bufString); !ok || v == 0.0 {
+ result = append(result, finalseg.Cut(bufString)...)
} else {
- if v, ok := seg.dict.Frequency(bufString); !ok || v == 0.0 {
- for x := range finalseg.Cut(bufString) {
- result <- x
- }
- } else {
- for _, elem := range buf {
- result <- string(elem)
- }
+ for _, elem := range buf {
+ result = append(result, string(elem))
}
}
- buf = make([]rune, 0)
}
- result <- string(frag)
+ buf = make([]rune, 0)
}
- x = y
+ result = append(result, string(frag))
}
+ x = y
+ }
- if len(buf) > 0 {
- bufString := string(buf)
- if len(buf) == 1 {
- result <- bufString
+ if len(buf) > 0 {
+ bufString := string(buf)
+ if len(buf) == 1 {
+ result = append(result, bufString)
+ } else {
+ if v, ok := seg.dict.Frequency(bufString); !ok || v == 0.0 {
+ result = append(result, finalseg.Cut(bufString)...)
} else {
- if v, ok := seg.dict.Frequency(bufString); !ok || v == 0.0 {
- for t := range finalseg.Cut(bufString) {
- result <- t
- }
- } else {
- for _, elem := range buf {
- result <- string(elem)
- }
+ for _, elem := range buf {
+ result = append(result, string(elem))
}
}
}
- close(result)
- }()
+ }
+
return result
}
-func (seg *Segmenter) cutDAGNoHMM(sentence string) <-chan string {
- result := make(chan string)
+func (seg *Segmenter) cutDAGNoHMM(sentence string) []string {
+ result := make([]string, 0, int(float32(len(sentence))/RatioLetterWord)+1)
- go func() {
- runes := []rune(sentence)
- routes := seg.calc(runes)
- var y int
- length := len(runes)
- var buf []rune
- for x := 0; x < length; {
- y = routes[x].index + 1
- frag := runes[x:y]
- if reEng.MatchString(string(frag)) && len(frag) == 1 {
- buf = append(buf, frag...)
- x = y
- continue
- }
- if len(buf) > 0 {
- result <- string(buf)
- buf = make([]rune, 0)
- }
- result <- string(frag)
+ runes := []rune(sentence)
+ routes := seg.calc(runes)
+ var y int
+ length := len(runes)
+ var buf []rune
+ for x := 0; x < length; {
+ y = routes[x].index + 1
+ frag := runes[x:y]
+ if reEng.MatchString(string(frag)) && len(frag) == 1 {
+ buf = append(buf, frag...)
x = y
+ continue
}
if len(buf) > 0 {
- result <- string(buf)
+ result = append(result, string(buf))
buf = make([]rune, 0)
}
- close(result)
- }()
+ result = append(result, string(frag))
+ x = y
+ }
+ if len(buf) > 0 {
+ result = append(result, string(buf))
+ }
+
return result
}
@@ -261,8 +259,8 @@ func (seg *Segmenter) cutDAGNoHMM(sentence string) <-chan string {
// Parameter hmm controls whether to use the Hidden Markov Model.
// Accurate mode attempts to cut the sentence into the most accurate
// segmentations, which is suitable for text analysis.
-func (seg *Segmenter) Cut(sentence string, hmm bool) <-chan string {
- result := make(chan string)
+func (seg *Segmenter) Cut(sentence string, hmm bool) []string {
+ result := make([]string, 0, int(float32(len(sentence))/RatioLetterWord)+1)
var cut cutFunc
if hmm {
cut = seg.cutDAG
@@ -270,84 +268,74 @@ func (seg *Segmenter) Cut(sentence string, hmm bool) <-chan string {
cut = seg.cutDAGNoHMM
}
- go func() {
- for _, block := range util.RegexpSplit(reHanDefault, sentence, -1) {
- if len(block) == 0 {
+ for _, block := range util.RegexpSplit(reHanDefault, sentence, -1) {
+ if len(block) == 0 {
+ continue
+ }
+ if reHanDefault.MatchString(block) {
+ result = append(result, cut(block)...)
+ continue
+ }
+ for _, subBlock := range util.RegexpSplit(reSkipDefault, block, -1) {
+ if reSkipDefault.MatchString(subBlock) {
+ result = append(result, subBlock)
continue
}
- if reHanDefault.MatchString(block) {
- for x := range cut(block) {
- result <- x
- }
- continue
- }
- for _, subBlock := range util.RegexpSplit(reSkipDefault, block, -1) {
- if reSkipDefault.MatchString(subBlock) {
- result <- subBlock
- continue
- }
- for _, r := range subBlock {
- result <- string(r)
- }
+ for _, r := range subBlock {
+ result = append(result, string(r))
}
}
- close(result)
- }()
+ }
+
return result
}
-func (seg *Segmenter) cutAll(sentence string) <-chan string {
- result := make(chan string)
- go func() {
- runes := []rune(sentence)
- dag := seg.dag(runes)
- start := -1
- ks := make([]int, len(dag))
- for k := range dag {
- ks[k] = k
+func (seg *Segmenter) cutAll(sentence string) []string {
+ result := make([]string, 0, int(float32(len(sentence))/RatioLetterWord)+1)
+
+ runes := []rune(sentence)
+ dag := seg.dag(runes)
+ start := -1
+ ks := make([]int, len(dag))
+ for k := range dag {
+ ks[k] = k
+ }
+ var l []int
+ for k := range ks {
+ l = dag[k]
+ if len(l) == 1 && k > start {
+ result = append(result, string(runes[k:l[0]+1]))
+ start = l[0]
+ continue
}
- var l []int
- for k := range ks {
- l = dag[k]
- if len(l) == 1 && k > start {
- result <- string(runes[k : l[0]+1])
- start = l[0]
- continue
- }
- for _, j := range l {
- if j > k {
- result <- string(runes[k : j+1])
- start = j
- }
+ for _, j := range l {
+ if j > k {
+ result = append(result, string(runes[k:j+1]))
+ start = j
}
}
- close(result)
- }()
+ }
+
return result
}
// CutAll cuts a sentence into words using full mode.
// Full mode gets all the possible words from the sentence.
// Fast but not accurate.
-func (seg *Segmenter) CutAll(sentence string) <-chan string {
- result := make(chan string)
- go func() {
- for _, block := range util.RegexpSplit(reHanCutAll, sentence, -1) {
- if len(block) == 0 {
- continue
- }
- if reHanCutAll.MatchString(block) {
- for x := range seg.cutAll(block) {
- result <- x
- }
- continue
- }
- for _, subBlock := range reSkipCutAll.Split(block, -1) {
- result <- subBlock
- }
+func (seg *Segmenter) CutAll(sentence string) []string {
+ result := make([]string, 0, int(float32(len(sentence))/RatioLetterWordFull)+1)
+
+ for _, block := range util.RegexpSplit(reHanCutAll, sentence, -1) {
+ if len(block) == 0 {
+ continue
}
- close(result)
- }()
+ if reHanCutAll.MatchString(block) {
+ result = append(result, seg.cutAll(block)...)
+ continue
+ }
+ result = append(result, reSkipCutAll.Split(block, -1)...)
+ }
+
return result
}
@@ -355,26 +343,25 @@ func (seg *Segmenter) CutAll(sentence string) <-chan string {
// Search engine mode, based on the accurate mode, attempts to cut long words
// into several short words, which can raise the recall rate.
// Suitable for search engines.
-func (seg *Segmenter) CutForSearch(sentence string, hmm bool) <-chan string {
- result := make(chan string)
- go func() {
- for word := range seg.Cut(sentence, hmm) {
- runes := []rune(word)
- for _, increment := range []int{2, 3} {
- if len(runes) <= increment {
- continue
- }
- var gram string
- for i := 0; i < len(runes)-increment+1; i++ {
- gram = string(runes[i : i+increment])
- if v, ok := seg.dict.Frequency(gram); ok && v > 0.0 {
- result <- gram
- }
+func (seg *Segmenter) CutForSearch(sentence string, hmm bool) []string {
+ result := make([]string, 0, int(float32(len(sentence))/RatioLetterWordFull)+1)
+
+ for _, word := range seg.Cut(sentence, hmm) {
+ runes := []rune(word)
+ for _, increment := range []int{2, 3} {
+ if len(runes) <= increment {
+ continue
+ }
+ var gram string
+ for i := 0; i < len(runes)-increment+1; i++ {
+ gram = string(runes[i : i+increment])
+ if v, ok := seg.dict.Frequency(gram); ok && v > 0.0 {
+ result = append(result, gram)
}
}
- result <- word
}
- close(result)
- }()
+ result = append(result, word)
+ }
+
return result
}
diff --git a/jieba_test.go b/jieba_test.go
old mode 100644
new mode 100755
index 6203848..94d1ac7
--- a/jieba_test.go
+++ b/jieba_test.go
@@ -91,527 +91,527 @@ var (
"你认识那个和主席握手的的哥吗?他开一辆黑色的士。",
"枪杆子中出政权"}
- defaultCutResult = [][]string{[]string{"这是", "一个", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
- []string{"我", "不", "喜欢", "日本", "和服", "。"},
- []string{"雷猴", "回归", "人间", "。"},
- []string{"工信处", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换机", "等", "技术性", "器件", "的", "安装", "工作"},
- []string{"我", "需要", "廉租房"},
- []string{"永和", "服装", "饰品", "有限公司"},
- []string{"我", "爱", "北京", "天安门"},
- []string{"abc"},
- []string{"隐", "马尔可夫"},
- []string{"雷猴", "是", "个", "好", "网站"},
- []string{"“", "Microsoft", "”", "一词", "由", "“", "MICROcomputer", "(", "微型", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
- []string{"草泥马", "和", "欺实", "马", "是", "今年", "的", "流行", "词汇"},
- []string{"伊藤", "洋华堂", "总府", "店"},
- []string{"中国科学院计算技术研究所"},
- []string{"罗密欧", "与", "朱丽叶"},
- []string{"我", "购买", "了", "道具", "和", "服装"},
- []string{"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断改进", ",", "避免", "敞帚", "自珍"},
- []string{"湖北省", "石首市"},
- []string{"湖北省", "十堰市"},
- []string{"总经理", "完成", "了", "这件", "事情"},
- []string{"电脑", "修好", "了"},
- []string{"做好", "了", "这件", "事情", "就", "一了百了", "了"},
- []string{"人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"我们", "买", "了", "一个", "美的", "空调"},
- []string{"线程", "初始化", "时", "我们", "要", "注意"},
- []string{"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
- []string{"祝", "你", "马到功成"},
- []string{"他", "掉", "进", "了", "无底洞", "里"},
- []string{"中国", "的", "首都", "是", "北京"},
- []string{"孙君意"},
- []string{"外交部", "发言人", "马朝旭"},
- []string{"领导人", "会议", "和", "第四届", "东亚", "峰会"},
- []string{"在", "过去", "的", "这", "五年"},
- []string{"还", "需要", "很长", "的", "路", "要", "走"},
- []string{"60", "周年", "首都", "阅兵"},
- []string{"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"买", "水果", "然后", "来", "世博园"},
- []string{"买", "水果", "然后", "去", "世博园"},
- []string{"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
- []string{"存在", "即", "合理"},
- []string{"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
- []string{"I", " ", "love", "你", ",", "不以为耻", ",", "反", "以为", "rong"},
- []string{"因"},
- []string{},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"为什么", "我", "不能", "拥有", "想要", "的", "生活"},
- []string{"后来", "我", "才"},
- []string{"此次", "来", "中国", "是", "为了"},
- []string{"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"是因为", "和", "国家"},
- []string{"老年", "搜索", "还", "支持"},
- []string{"干脆", "就", "把", "那部", "蒙人", "的", "闲法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国人大常委会", "第三次", "审议", "侵权", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中本", "已", "处于", "弱势", "地位", "的", "消费者", "由此", "将", "陷入", "万劫不复", "的", "境地", "。", " "},
- []string{"大"},
- []string{},
- []string{"他", "说", "的", "确实", "在理"},
- []string{"长春", "市长", "春节", "讲话"},
- []string{"结婚", "的", "和", "尚未", "结婚", "的"},
- []string{"结合", "成", "分子", "时"},
- []string{"旅游", "和", "服务", "是", "最好", "的"},
- []string{"这件", "事情", "的确", "是", "我", "的", "错"},
- []string{"供", "大家", "参考", "指正"},
- []string{"哈尔滨", "政府", "公布", "塌桥", "原因"},
- []string{"我", "在", "机场", "入口处"},
- []string{"邢永臣", "摄影", "报道"},
- []string{"BP", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分度", "?"},
- []string{"南京市", "长江大桥"},
- []string{"应", "一些", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
- []string{"长春市", "长春", "药店"},
- []string{"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
- []string{"胡锦涛", "是", "热爱", "世界", "和平", "的", "政治局", "常委"},
- []string{"程序员", "祝", "海林", "和", "朱会震", "是", "在", "孙健", "的", "左面", "和", "右面", ",", " ", "范凯", "在", "最", "右面", ".", "再往", "左", "是", "李松洪"},
- []string{"一次性", "交", "多少", "钱"},
- []string{"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
- []string{"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚头"},
- []string{"我", "是", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和党", "党员", ";", " ", "地铁", "和平门", "站"},
- []string{"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
- []string{"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
- []string{"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3.14159"},
- []string{"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他开", "一辆", "黑色", "的士", "。"},
- []string{"枪杆子", "中", "出", "政权"},
+ defaultCutResult = [][]string{{"这是", "一个", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
+ {"我", "不", "喜欢", "日本", "和服", "。"},
+ {"雷猴", "回归", "人间", "。"},
+ {"工信处", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换机", "等", "技术性", "器件", "的", "安装", "工作"},
+ {"我", "需要", "廉租房"},
+ {"永和", "服装", "饰品", "有限公司"},
+ {"我", "爱", "北京", "天安门"},
+ {"abc"},
+ {"隐", "马尔可夫"},
+ {"雷猴", "是", "个", "好", "网站"},
+ {"“", "Microsoft", "”", "一词", "由", "“", "MICROcomputer", "(", "微型", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
+ {"草泥马", "和", "欺实", "马", "是", "今年", "的", "流行", "词汇"},
+ {"伊藤", "洋华堂", "总府", "店"},
+ {"中国科学院计算技术研究所"},
+ {"罗密欧", "与", "朱丽叶"},
+ {"我", "购买", "了", "道具", "和", "服装"},
+ {"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断改进", ",", "避免", "敞帚", "自珍"},
+ {"湖北省", "石首市"},
+ {"湖北省", "十堰市"},
+ {"总经理", "完成", "了", "这件", "事情"},
+ {"电脑", "修好", "了"},
+ {"做好", "了", "这件", "事情", "就", "一了百了", "了"},
+ {"人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"我们", "买", "了", "一个", "美的", "空调"},
+ {"线程", "初始化", "时", "我们", "要", "注意"},
+ {"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
+ {"祝", "你", "马到功成"},
+ {"他", "掉", "进", "了", "无底洞", "里"},
+ {"中国", "的", "首都", "是", "北京"},
+ {"孙君意"},
+ {"外交部", "发言人", "马朝旭"},
+ {"领导人", "会议", "和", "第四届", "东亚", "峰会"},
+ {"在", "过去", "的", "这", "五年"},
+ {"还", "需要", "很长", "的", "路", "要", "走"},
+ {"60", "周年", "首都", "阅兵"},
+ {"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"买", "水果", "然后", "来", "世博园"},
+ {"买", "水果", "然后", "去", "世博园"},
+ {"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
+ {"存在", "即", "合理"},
+ {"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
+ {"I", " ", "love", "你", ",", "不以为耻", ",", "反", "以为", "rong"},
+ {"因"},
+ {},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"为什么", "我", "不能", "拥有", "想要", "的", "生活"},
+ {"后来", "我", "才"},
+ {"此次", "来", "中国", "是", "为了"},
+ {"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"是因为", "和", "国家"},
+ {"老年", "搜索", "还", "支持"},
+ {"干脆", "就", "把", "那部", "蒙人", "的", "闲法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国人大常委会", "第三次", "审议", "侵权", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中本", "已", "处于", "弱势", "地位", "的", "消费者", "由此", "将", "陷入", "万劫不复", "的", "境地", "。", " "},
+ {"大"},
+ {},
+ {"他", "说", "的", "确实", "在理"},
+ {"长春", "市长", "春节", "讲话"},
+ {"结婚", "的", "和", "尚未", "结婚", "的"},
+ {"结合", "成", "分子", "时"},
+ {"旅游", "和", "服务", "是", "最好", "的"},
+ {"这件", "事情", "的确", "是", "我", "的", "错"},
+ {"供", "大家", "参考", "指正"},
+ {"哈尔滨", "政府", "公布", "塌桥", "原因"},
+ {"我", "在", "机场", "入口处"},
+ {"邢永臣", "摄影", "报道"},
+ {"BP", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分度", "?"},
+ {"南京市", "长江大桥"},
+ {"应", "一些", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
+ {"长春市", "长春", "药店"},
+ {"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
+ {"胡锦涛", "是", "热爱", "世界", "和平", "的", "政治局", "常委"},
+ {"程序员", "祝", "海林", "和", "朱会震", "是", "在", "孙健", "的", "左面", "和", "右面", ",", " ", "范凯", "在", "最", "右面", ".", "再往", "左", "是", "李松洪"},
+ {"一次性", "交", "多少", "钱"},
+ {"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
+ {"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚头"},
+ {"我", "是", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和党", "党员", ";", " ", "地铁", "和平门", "站"},
+ {"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
+ {"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
+ {"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3.14159"},
+ {"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他开", "一辆", "黑色", "的士", "。"},
+ {"枪杆子", "中", "出", "政权"},
}
- cutAllResult = [][]string{[]string{"这", "是", "一个", "伸手", "伸手不见", "伸手不见五指", "不见", "五指", "的", "黑夜", "", "", "我", "叫", "孙悟空", "悟空", "", "", "我", "爱", "北京", "", "", "我", "爱", "Python", "和", "C++", ""},
- []string{"我", "不", "喜欢", "日本", "和服", "", ""},
- []string{"雷猴", "回归", "人间", "", ""},
- []string{"工信处", "处女", "女干事", "干事", "每月", "月经", "经过", "下属", "科室", "都", "要", "亲口", "口交", "交代", "24", "口交", "交换", "交换机", "换机", "等", "技术", "技术性", "性器", "器件", "的", "安装", "安装工", "装工", "工作"},
- []string{"我", "需要", "廉租", "廉租房", "租房"},
- []string{"永和", "和服", "服装", "装饰", "装饰品", "饰品", "有限", "有限公司", "公司"},
- []string{"我", "爱", "北京", "天安", "天安门"},
- []string{"abc"},
- []string{"隐", "马尔可", "马尔可夫", "可夫"},
- []string{"雷猴", "是", "个", "好", "网站"},
- []string{"", "Microsoft", "", "一", "词", "由", "", "MICROcomputer", "", "微型", "计算", "计算机", "算机", "", "", "", "和", "", "SOFTware", "", "软件", "", "", "", "两部", "部分", "分组", "组成"},
- []string{"草泥马", "和", "欺", "实", "马", "是", "今年", "的", "流行", "词汇"},
- []string{"伊", "藤", "洋华堂", "总府", "店"},
- []string{"中国", "中国科学院", "中国科学院计算技术研究所", "科学", "科学院", "学院", "计算", "计算技术", "技术", "研究", "研究所"},
- []string{"罗密欧", "与", "朱丽叶"},
- []string{"我", "购买", "了", "道具", "和服", "服装"},
- []string{"PS", "", "", "我", "觉得", "开源", "有", "一个", "好处", "", "", "就是", "能够", "敦促", "自己", "不断", "不断改进", "改进", "", "", "避免", "敞", "帚", "自珍"},
- []string{"湖北", "湖北省", "石首", "石首市"},
- []string{"湖北", "湖北省", "十堰", "十堰市"},
- []string{"总经理", "经理", "理完", "完成", "了", "这件", "事情"},
- []string{"电脑", "修好", "了"},
- []string{"做好", "了", "这件", "事情", "就", "一了百了", "了了"},
- []string{"人们", "审美", "美的", "观点", "是", "不同", "的"},
- []string{"我们", "买", "了", "一个", "美的", "空调"},
- []string{"线程", "初始", "初始化", "化时", "我们", "要", "注意"},
- []string{"一个", "分子", "是", "由", "好多", "原子", "组织", "织成", "的"},
- []string{"祝", "你", "马到功成"},
- []string{"他", "掉", "进", "了", "无底", "无底洞", "里"},
- []string{"中国", "的", "首都", "是", "北京"},
- []string{"孙", "君", "意"},
- []string{"外交", "外交部", "部发", "发言", "发言人", "人马", "马朝旭"},
- []string{"领导", "领导人", "会议", "议和", "第四", "第四届", "四届", "东亚", "峰会"},
- []string{"在", "过去", "的", "这", "五年"},
- []string{"还", "需要", "很", "长", "的", "路", "要", "走"},
- []string{"60", "周年", "首都", "阅兵"},
- []string{"你好", "好人", "人们", "审美", "美的", "观点", "是", "不同", "的"},
- []string{"买", "水果", "果然", "然后", "后来", "来世", "世博", "世博园", "博园"},
- []string{"买", "水果", "果然", "然后", "后去", "去世", "世博", "世博园", "博园"},
- []string{"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
- []string{"存在", "即", "合理"},
- []string{"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
- []string{"I", "love", "你", "", "", "不以", "不以为耻", "以为", "耻", "", "", "反", "以为", "rong"},
- []string{"因"},
- []string{},
- []string{"hello", "你好", "好人", "人们", "审美", "美的", "观点", "是", "不同", "的"},
- []string{"很", "好", "但", "主要", "要是", "基于", "网页", "形式"},
- []string{"hello", "你好", "好人", "人们", "审美", "美的", "观点", "是", "不同", "的"},
- []string{"为什么", "什么", "我", "不能", "拥有", "想要", "的", "生活"},
- []string{"后来", "我", "才"},
- []string{"此次", "来", "中国", "国是", "为了"},
- []string{"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"", "", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"是因为", "因为", "和", "国家"},
- []string{"老年", "搜索", "索还", "支持"},
- []string{"干脆", "就", "把", "那部", "蒙人", "的", "闲", "法", "给", "废", "了", "拉倒", "", "RT", "", "laoshipukong", "", "", "27", "日", "", "", "全国", "全国人大", "全国人大常委会", "国人", "人大", "人大常委会", "常委", "常委会", "委会", "第三", "第三次", "三次", "审议", "侵权", "权责", "责任", "责任法", "草案", "", "", "删除", "除了", "有关", "医疗", "损害", "责任", "", "", "举证", "倒置", "", "", "的", "规定", "", "", "在", "医患", "纠纷", "中", "本", "已", "处于", "弱势", "地位", "的", "消费", "消费者", "由此", "将", "陷入", "万劫不复", "不复", "的", "境地", "", "", ""},
- []string{"大"},
- []string{},
- []string{"他", "说", "的确", "确实", "实在", "理"},
- []string{"长春", "长春市", "市长", "长春", "春节", "讲话"},
- []string{"结婚", "的", "和尚", "尚未", "未结", "结婚", "的"},
- []string{"结合", "合成", "成分", "分子", "时"},
- []string{"旅游", "和服", "服务", "是", "最好", "的"},
- []string{"这件", "事情", "的确", "是", "我", "的", "错"},
- []string{"供", "大家", "参考", "指正"},
- []string{"哈尔", "哈尔滨", "政府", "公布", "塌", "桥", "原因"},
- []string{"我", "在", "机场", "入口", "入口处"},
- []string{"邢", "永", "臣", "摄影", "报道"},
- []string{"BP", "神经", "神经网", "神经网络", "网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "加区", "区分", "区分度", "分度", "", ""},
- []string{"南京", "南京市", "京市", "市长", "长江", "长江大桥", "大桥"},
- []string{"应", "一些", "使用", "使用者", "用者", "的", "建议", "", "", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
- []string{"长春", "长春市", "市长", "长春", "春药", "药店"},
- []string{"邓颖超", "超生", "生前", "最", "喜欢", "的", "衣服"},
- []string{"胡锦涛", "锦涛", "是", "热爱", "世界", "和平", "的", "政治", "政治局", "常委"},
- []string{"程序", "程序员", "祝", "海林", "和", "朱", "会", "震", "是", "在", "孙", "健", "的", "左面", "和", "右面", "", "", "", "范", "凯", "在", "最", "右面", "", "", "再往", "左", "是", "李", "松", "洪"},
- []string{"一次", "一次性", "性交", "多少", "多少钱"},
- []string{"两块", "五一", "一套", "", "", "三块", "八一", "一斤", "", "", "四块", "七一", "一本", "", "", "五块", "六一", "一条"},
- []string{"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚", "和尚头"},
- []string{"我", "是", "中华", "中华人民", "中华人民共和国", "华人", "人民", "人民共和国", "共和", "共和国", "国公", "公民", "", "", "我", "爸爸", "是", "共和", "共和党", "党员", "", "", "", "地铁", "和平", "和平门", "站"},
- []string{"张晓梅", "去", "人民", "民医院", "医院", "做", "了", "个", "B", "超然", "然后", "后去", "买", "了", "件", "T", "恤"},
- []string{"AT", "T", "是", "一件", "不错", "的", "公司", "", "", "给", "你", "发", "offer", "了", "吗", "", ""},
- []string{"C++", "和", "c#", "是", "什么", "关系", "", "11+122", "133", "", "是", "吗", "", "PI", "3", "14159"},
- []string{"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "", "", "他", "开", "一辆", "黑色", "的士", "", ""},
- []string{"枪杆", "枪杆子", "杆子", "中出", "政权"},
+ cutAllResult = [][]string{{"这", "是", "一个", "伸手", "伸手不见", "伸手不见五指", "不见", "五指", "的", "黑夜", "", "", "我", "叫", "孙悟空", "悟空", "", "", "我", "爱", "北京", "", "", "我", "爱", "Python", "和", "C++", ""},
+ {"我", "不", "喜欢", "日本", "和服", "", ""},
+ {"雷猴", "回归", "人间", "", ""},
+ {"工信处", "处女", "女干事", "干事", "每月", "月经", "经过", "下属", "科室", "都", "要", "亲口", "口交", "交代", "24", "口交", "交换", "交换机", "换机", "等", "技术", "技术性", "性器", "器件", "的", "安装", "安装工", "装工", "工作"},
+ {"我", "需要", "廉租", "廉租房", "租房"},
+ {"永和", "和服", "服装", "装饰", "装饰品", "饰品", "有限", "有限公司", "公司"},
+ {"我", "爱", "北京", "天安", "天安门"},
+ {"abc"},
+ {"隐", "马尔可", "马尔可夫", "可夫"},
+ {"雷猴", "是", "个", "好", "网站"},
+ {"", "Microsoft", "", "一", "词", "由", "", "MICROcomputer", "", "微型", "计算", "计算机", "算机", "", "", "", "和", "", "SOFTware", "", "软件", "", "", "", "两部", "部分", "分组", "组成"},
+ {"草泥马", "和", "欺", "实", "马", "是", "今年", "的", "流行", "词汇"},
+ {"伊", "藤", "洋华堂", "总府", "店"},
+ {"中国", "中国科学院", "中国科学院计算技术研究所", "科学", "科学院", "学院", "计算", "计算技术", "技术", "研究", "研究所"},
+ {"罗密欧", "与", "朱丽叶"},
+ {"我", "购买", "了", "道具", "和服", "服装"},
+ {"PS", "", "", "我", "觉得", "开源", "有", "一个", "好处", "", "", "就是", "能够", "敦促", "自己", "不断", "不断改进", "改进", "", "", "避免", "敞", "帚", "自珍"},
+ {"湖北", "湖北省", "石首", "石首市"},
+ {"湖北", "湖北省", "十堰", "十堰市"},
+ {"总经理", "经理", "理完", "完成", "了", "这件", "事情"},
+ {"电脑", "修好", "了"},
+ {"做好", "了", "这件", "事情", "就", "一了百了", "了了"},
+ {"人们", "审美", "美的", "观点", "是", "不同", "的"},
+ {"我们", "买", "了", "一个", "美的", "空调"},
+ {"线程", "初始", "初始化", "化时", "我们", "要", "注意"},
+ {"一个", "分子", "是", "由", "好多", "原子", "组织", "织成", "的"},
+ {"祝", "你", "马到功成"},
+ {"他", "掉", "进", "了", "无底", "无底洞", "里"},
+ {"中国", "的", "首都", "是", "北京"},
+ {"孙", "君", "意"},
+ {"外交", "外交部", "部发", "发言", "发言人", "人马", "马朝旭"},
+ {"领导", "领导人", "会议", "议和", "第四", "第四届", "四届", "东亚", "峰会"},
+ {"在", "过去", "的", "这", "五年"},
+ {"还", "需要", "很", "长", "的", "路", "要", "走"},
+ {"60", "周年", "首都", "阅兵"},
+ {"你好", "好人", "人们", "审美", "美的", "观点", "是", "不同", "的"},
+ {"买", "水果", "果然", "然后", "后来", "来世", "世博", "世博园", "博园"},
+ {"买", "水果", "果然", "然后", "后去", "去世", "世博", "世博园", "博园"},
+ {"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
+ {"存在", "即", "合理"},
+ {"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
+ {"I", "love", "你", "", "", "不以", "不以为耻", "以为", "耻", "", "", "反", "以为", "rong"},
+ {"因"},
+ {},
+ {"hello", "你好", "好人", "人们", "审美", "美的", "观点", "是", "不同", "的"},
+ {"很", "好", "但", "主要", "要是", "基于", "网页", "形式"},
+ {"hello", "你好", "好人", "人们", "审美", "美的", "观点", "是", "不同", "的"},
+ {"为什么", "什么", "我", "不能", "拥有", "想要", "的", "生活"},
+ {"后来", "我", "才"},
+ {"此次", "来", "中国", "国是", "为了"},
+ {"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"", "", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"是因为", "因为", "和", "国家"},
+ {"老年", "搜索", "索还", "支持"},
+ {"干脆", "就", "把", "那部", "蒙人", "的", "闲", "法", "给", "废", "了", "拉倒", "", "RT", "", "laoshipukong", "", "", "27", "日", "", "", "全国", "全国人大", "全国人大常委会", "国人", "人大", "人大常委会", "常委", "常委会", "委会", "第三", "第三次", "三次", "审议", "侵权", "权责", "责任", "责任法", "草案", "", "", "删除", "除了", "有关", "医疗", "损害", "责任", "", "", "举证", "倒置", "", "", "的", "规定", "", "", "在", "医患", "纠纷", "中", "本", "已", "处于", "弱势", "地位", "的", "消费", "消费者", "由此", "将", "陷入", "万劫不复", "不复", "的", "境地", "", "", ""},
+ {"大"},
+ {},
+ {"他", "说", "的确", "确实", "实在", "理"},
+ {"长春", "长春市", "市长", "长春", "春节", "讲话"},
+ {"结婚", "的", "和尚", "尚未", "未结", "结婚", "的"},
+ {"结合", "合成", "成分", "分子", "时"},
+ {"旅游", "和服", "服务", "是", "最好", "的"},
+ {"这件", "事情", "的确", "是", "我", "的", "错"},
+ {"供", "大家", "参考", "指正"},
+ {"哈尔", "哈尔滨", "政府", "公布", "塌", "桥", "原因"},
+ {"我", "在", "机场", "入口", "入口处"},
+ {"邢", "永", "臣", "摄影", "报道"},
+ {"BP", "神经", "神经网", "神经网络", "网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "加区", "区分", "区分度", "分度", "", ""},
+ {"南京", "南京市", "京市", "市长", "长江", "长江大桥", "大桥"},
+ {"应", "一些", "使用", "使用者", "用者", "的", "建议", "", "", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
+ {"长春", "长春市", "市长", "长春", "春药", "药店"},
+ {"邓颖超", "超生", "生前", "最", "喜欢", "的", "衣服"},
+ {"胡锦涛", "锦涛", "是", "热爱", "世界", "和平", "的", "政治", "政治局", "常委"},
+ {"程序", "程序员", "祝", "海林", "和", "朱", "会", "震", "是", "在", "孙", "健", "的", "左面", "和", "右面", "", "", "", "范", "凯", "在", "最", "右面", "", "", "再往", "左", "是", "李", "松", "洪"},
+ {"一次", "一次性", "性交", "多少", "多少钱"},
+ {"两块", "五一", "一套", "", "", "三块", "八一", "一斤", "", "", "四块", "七一", "一本", "", "", "五块", "六一", "一条"},
+ {"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚", "和尚头"},
+ {"我", "是", "中华", "中华人民", "中华人民共和国", "华人", "人民", "人民共和国", "共和", "共和国", "国公", "公民", "", "", "我", "爸爸", "是", "共和", "共和党", "党员", "", "", "", "地铁", "和平", "和平门", "站"},
+ {"张晓梅", "去", "人民", "民医院", "医院", "做", "了", "个", "B", "超然", "然后", "后去", "买", "了", "件", "T", "恤"},
+ {"AT", "T", "是", "一件", "不错", "的", "公司", "", "", "给", "你", "发", "offer", "了", "吗", "", ""},
+ {"C++", "和", "c#", "是", "什么", "关系", "", "11+122", "133", "", "是", "吗", "", "PI", "3", "14159"},
+ {"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "", "", "他", "开", "一辆", "黑色", "的士", "", ""},
+ {"枪杆", "枪杆子", "杆子", "中出", "政权"},
}
- defaultCutNoHMMResult = [][]string{[]string{"这", "是", "一个", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
- []string{"我", "不", "喜欢", "日本", "和服", "。"},
- []string{"雷猴", "回归", "人间", "。"},
- []string{"工信处", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换机", "等", "技术性", "器件", "的", "安装", "工作"},
- []string{"我", "需要", "廉租房"},
- []string{"永和", "服装", "饰品", "有限公司"},
- []string{"我", "爱", "北京", "天安门"},
- []string{"abc"},
- []string{"隐", "马尔可夫"},
- []string{"雷猴", "是", "个", "好", "网站"},
- []string{"“", "Microsoft", "”", "一", "词", "由", "“", "MICROcomputer", "(", "微型", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
- []string{"草泥马", "和", "欺", "实", "马", "是", "今年", "的", "流行", "词汇"},
- []string{"伊", "藤", "洋华堂", "总府", "店"},
- []string{"中国科学院计算技术研究所"},
- []string{"罗密欧", "与", "朱丽叶"},
- []string{"我", "购买", "了", "道具", "和", "服装"},
- []string{"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断改进", ",", "避免", "敞", "帚", "自珍"},
- []string{"湖北省", "石首市"},
- []string{"湖北省", "十堰市"},
- []string{"总经理", "完成", "了", "这件", "事情"},
- []string{"电脑", "修好", "了"},
- []string{"做好", "了", "这件", "事情", "就", "一了百了", "了"},
- []string{"人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"我们", "买", "了", "一个", "美的", "空调"},
- []string{"线程", "初始化", "时", "我们", "要", "注意"},
- []string{"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
- []string{"祝", "你", "马到功成"},
- []string{"他", "掉", "进", "了", "无底洞", "里"},
- []string{"中国", "的", "首都", "是", "北京"},
- []string{"孙", "君", "意"},
- []string{"外交部", "发言人", "马朝旭"},
- []string{"领导人", "会议", "和", "第四届", "东亚", "峰会"},
- []string{"在", "过去", "的", "这", "五年"},
- []string{"还", "需要", "很", "长", "的", "路", "要", "走"},
- []string{"60", "周年", "首都", "阅兵"},
- []string{"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"买", "水果", "然后", "来", "世博园"},
- []string{"买", "水果", "然后", "去", "世博园"},
- []string{"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
- []string{"存在", "即", "合理"},
- []string{"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
- []string{"I", " ", "love", "你", ",", "不以为耻", ",", "反", "以为", "rong"},
- []string{"因"},
- []string{},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"为什么", "我", "不能", "拥有", "想要", "的", "生活"},
- []string{"后来", "我", "才"},
- []string{"此次", "来", "中国", "是", "为了"},
- []string{"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"是因为", "和", "国家"},
- []string{"老年", "搜索", "还", "支持"},
- []string{"干脆", "就", "把", "那", "部", "蒙", "人", "的", "闲", "法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国人大常委会", "第三次", "审议", "侵权", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中", "本", "已", "处于", "弱势", "地位", "的", "消费者", "由此", "将", "陷入", "万劫不复", "的", "境地", "。", " "},
- []string{"大"},
- []string{},
- []string{"他", "说", "的", "确实", "在", "理"},
- []string{"长春", "市长", "春节", "讲话"},
- []string{"结婚", "的", "和", "尚未", "结婚", "的"},
- []string{"结合", "成", "分子", "时"},
- []string{"旅游", "和", "服务", "是", "最好", "的"},
- []string{"这件", "事情", "的确", "是", "我", "的", "错"},
- []string{"供", "大家", "参考", "指正"},
- []string{"哈尔滨", "政府", "公布", "塌", "桥", "原因"},
- []string{"我", "在", "机场", "入口处"},
- []string{"邢", "永", "臣", "摄影", "报道"},
- []string{"BP", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分度", "?"},
- []string{"南京市", "长江大桥"},
- []string{"应", "一些", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
- []string{"长春市", "长春", "药店"},
- []string{"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
- []string{"胡锦涛", "是", "热爱", "世界", "和平", "的", "政治局", "常委"},
- []string{"程序员", "祝", "海林", "和", "朱", "会", "震", "是", "在", "孙", "健", "的", "左面", "和", "右面", ",", " ", "范", "凯", "在", "最", "右面", ".", "再", "往", "左", "是", "李", "松", "洪"},
- []string{"一次性", "交", "多少", "钱"},
- []string{"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
- []string{"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚头"},
- []string{"我", "是", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和党", "党员", ";", " ", "地铁", "和平门", "站"},
- []string{"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
- []string{"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
- []string{"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3", ".", "14159"},
- []string{"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他", "开", "一辆", "黑色", "的士", "。"},
- []string{"枪杆子", "中", "出", "政权"},
+ defaultCutNoHMMResult = [][]string{{"这", "是", "一个", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
+ {"我", "不", "喜欢", "日本", "和服", "。"},
+ {"雷猴", "回归", "人间", "。"},
+ {"工信处", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换机", "等", "技术性", "器件", "的", "安装", "工作"},
+ {"我", "需要", "廉租房"},
+ {"永和", "服装", "饰品", "有限公司"},
+ {"我", "爱", "北京", "天安门"},
+ {"abc"},
+ {"隐", "马尔可夫"},
+ {"雷猴", "是", "个", "好", "网站"},
+ {"“", "Microsoft", "”", "一", "词", "由", "“", "MICROcomputer", "(", "微型", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
+ {"草泥马", "和", "欺", "实", "马", "是", "今年", "的", "流行", "词汇"},
+ {"伊", "藤", "洋华堂", "总府", "店"},
+ {"中国科学院计算技术研究所"},
+ {"罗密欧", "与", "朱丽叶"},
+ {"我", "购买", "了", "道具", "和", "服装"},
+ {"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断改进", ",", "避免", "敞", "帚", "自珍"},
+ {"湖北省", "石首市"},
+ {"湖北省", "十堰市"},
+ {"总经理", "完成", "了", "这件", "事情"},
+ {"电脑", "修好", "了"},
+ {"做好", "了", "这件", "事情", "就", "一了百了", "了"},
+ {"人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"我们", "买", "了", "一个", "美的", "空调"},
+ {"线程", "初始化", "时", "我们", "要", "注意"},
+ {"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
+ {"祝", "你", "马到功成"},
+ {"他", "掉", "进", "了", "无底洞", "里"},
+ {"中国", "的", "首都", "是", "北京"},
+ {"孙", "君", "意"},
+ {"外交部", "发言人", "马朝旭"},
+ {"领导人", "会议", "和", "第四届", "东亚", "峰会"},
+ {"在", "过去", "的", "这", "五年"},
+ {"还", "需要", "很", "长", "的", "路", "要", "走"},
+ {"60", "周年", "首都", "阅兵"},
+ {"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"买", "水果", "然后", "来", "世博园"},
+ {"买", "水果", "然后", "去", "世博园"},
+ {"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
+ {"存在", "即", "合理"},
+ {"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
+ {"I", " ", "love", "你", ",", "不以为耻", ",", "反", "以为", "rong"},
+ {"因"},
+ {},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"为什么", "我", "不能", "拥有", "想要", "的", "生活"},
+ {"后来", "我", "才"},
+ {"此次", "来", "中国", "是", "为了"},
+ {"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"是因为", "和", "国家"},
+ {"老年", "搜索", "还", "支持"},
+ {"干脆", "就", "把", "那", "部", "蒙", "人", "的", "闲", "法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国人大常委会", "第三次", "审议", "侵权", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中", "本", "已", "处于", "弱势", "地位", "的", "消费者", "由此", "将", "陷入", "万劫不复", "的", "境地", "。", " "},
+ {"大"},
+ {},
+ {"他", "说", "的", "确实", "在", "理"},
+ {"长春", "市长", "春节", "讲话"},
+ {"结婚", "的", "和", "尚未", "结婚", "的"},
+ {"结合", "成", "分子", "时"},
+ {"旅游", "和", "服务", "是", "最好", "的"},
+ {"这件", "事情", "的确", "是", "我", "的", "错"},
+ {"供", "大家", "参考", "指正"},
+ {"哈尔滨", "政府", "公布", "塌", "桥", "原因"},
+ {"我", "在", "机场", "入口处"},
+ {"邢", "永", "臣", "摄影", "报道"},
+ {"BP", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分度", "?"},
+ {"南京市", "长江大桥"},
+ {"应", "一些", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
+ {"长春市", "长春", "药店"},
+ {"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
+ {"胡锦涛", "是", "热爱", "世界", "和平", "的", "政治局", "常委"},
+ {"程序员", "祝", "海林", "和", "朱", "会", "震", "是", "在", "孙", "健", "的", "左面", "和", "右面", ",", " ", "范", "凯", "在", "最", "右面", ".", "再", "往", "左", "是", "李", "松", "洪"},
+ {"一次性", "交", "多少", "钱"},
+ {"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
+ {"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚头"},
+ {"我", "是", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和党", "党员", ";", " ", "地铁", "和平门", "站"},
+ {"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
+ {"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
+ {"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3", ".", "14159"},
+ {"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他", "开", "一辆", "黑色", "的士", "。"},
+ {"枪杆子", "中", "出", "政权"},
}
- cutForSearchResult = [][]string{[]string{"这是", "一个", "伸手", "不见", "五指", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "悟空", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
- []string{"我", "不", "喜欢", "日本", "和服", "。"},
- []string{"雷猴", "回归", "人间", "。"},
- []string{"工信处", "干事", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换", "换机", "交换机", "等", "技术", "技术性", "器件", "的", "安装", "工作"},
- []string{"我", "需要", "廉租", "租房", "廉租房"},
- []string{"永和", "服装", "饰品", "有限", "公司", "有限公司"},
- []string{"我", "爱", "北京", "天安", "天安门"},
- []string{"abc"},
- []string{"隐", "可夫", "马尔可", "马尔可夫"},
- []string{"雷猴", "是", "个", "好", "网站"},
- []string{"“", "Microsoft", "”", "一词", "由", "“", "MICROcomputer", "(", "微型", "计算", "算机", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
- []string{"草泥马", "和", "欺实", "马", "是", "今年", "的", "流行", "词汇"},
- []string{"伊藤", "洋华堂", "总府", "店"},
- []string{"中国", "科学", "学院", "计算", "技术", "研究", "科学院", "研究所", "中国科学院计算技术研究所"},
- []string{"罗密欧", "与", "朱丽叶"},
- []string{"我", "购买", "了", "道具", "和", "服装"},
- []string{"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断", "改进", "不断改进", ",", "避免", "敞帚", "自珍"},
- []string{"湖北", "湖北省", "石首", "石首市"},
- []string{"湖北", "湖北省", "十堰", "十堰市"},
- []string{"经理", "总经理", "完成", "了", "这件", "事情"},
- []string{"电脑", "修好", "了"},
- []string{"做好", "了", "这件", "事情", "就", "一了百了", "了"},
- []string{"人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"我们", "买", "了", "一个", "美的", "空调"},
- []string{"线程", "初始", "初始化", "时", "我们", "要", "注意"},
- []string{"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
- []string{"祝", "你", "马到功成"},
- []string{"他", "掉", "进", "了", "无底", "无底洞", "里"},
- []string{"中国", "的", "首都", "是", "北京"},
- []string{"孙君意"},
- []string{"外交", "外交部", "发言", "发言人", "马朝旭"},
- []string{"领导", "领导人", "会议", "和", "第四", "四届", "第四届", "东亚", "峰会"},
- []string{"在", "过去", "的", "这", "五年"},
- []string{"还", "需要", "很长", "的", "路", "要", "走"},
- []string{"60", "周年", "首都", "阅兵"},
- []string{"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"买", "水果", "然后", "来", "世博", "博园", "世博园"},
- []string{"买", "水果", "然后", "去", "世博", "博园", "世博园"},
- []string{"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
- []string{"存在", "即", "合理"},
- []string{"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
- []string{"I", " ", "love", "你", ",", "不以", "以为", "不以为耻", ",", "反", "以为", "rong"},
- []string{"因"},
- []string{},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"什么", "为什么", "我", "不能", "拥有", "想要", "的", "生活"},
- []string{"后来", "我", "才"},
- []string{"此次", "来", "中国", "是", "为了"},
- []string{"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"因为", "是因为", "和", "国家"},
- []string{"老年", "搜索", "还", "支持"},
- []string{"干脆", "就", "把", "那部", "蒙人", "的", "闲法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国", "国人", "人大", "常委", "委会", "常委会", "全国人大常委会", "第三", "三次", "第三次", "审议", "侵权", "责任", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中本", "已", "处于", "弱势", "地位", "的", "消费", "消费者", "由此", "将", "陷入", "不复", "万劫不复", "的", "境地", "。", " "},
- []string{"大"},
- []string{},
- []string{"他", "说", "的", "确实", "在理"},
- []string{"长春", "市长", "春节", "讲话"},
- []string{"结婚", "的", "和", "尚未", "结婚", "的"},
- []string{"结合", "成", "分子", "时"},
- []string{"旅游", "和", "服务", "是", "最好", "的"},
- []string{"这件", "事情", "的确", "是", "我", "的", "错"},
- []string{"供", "大家", "参考", "指正"},
- []string{"哈尔", "哈尔滨", "政府", "公布", "塌桥", "原因"},
- []string{"我", "在", "机场", "入口", "入口处"},
- []string{"邢永臣", "摄影", "报道"},
- []string{"BP", "神经", "网络", "神经网", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分", "分度", "区分度", "?"},
- []string{"南京", "京市", "南京市", "长江", "大桥", "长江大桥"},
- []string{"应", "一些", "使用", "用者", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
- []string{"长春", "长春市", "长春", "药店"},
- []string{"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
- []string{"锦涛", "胡锦涛", "是", "热爱", "世界", "和平", "的", "政治", "政治局", "常委"},
- []string{"程序", "程序员", "祝", "海林", "和", "朱会震", "是", "在", "孙健", "的", "左面", "和", "右面", ",", " ", "范凯", "在", "最", "右面", ".", "再往", "左", "是", "李松洪"},
- []string{"一次", "一次性", "交", "多少", "钱"},
- []string{"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
- []string{"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚", "和尚头"},
- []string{"我", "是", "中华", "华人", "人民", "共和", "共和国", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和", "共和党", "党员", ";", " ", "地铁", "和平", "和平门", "站"},
- []string{"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
- []string{"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
- []string{"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3.14159"},
- []string{"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他开", "一辆", "黑色", "的士", "。"},
- []string{"枪杆", "杆子", "枪杆子", "中", "出", "政权"},
+ cutForSearchResult = [][]string{{"这是", "一个", "伸手", "不见", "五指", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "悟空", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
+ {"我", "不", "喜欢", "日本", "和服", "。"},
+ {"雷猴", "回归", "人间", "。"},
+ {"工信处", "干事", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换", "换机", "交换机", "等", "技术", "技术性", "器件", "的", "安装", "工作"},
+ {"我", "需要", "廉租", "租房", "廉租房"},
+ {"永和", "服装", "饰品", "有限", "公司", "有限公司"},
+ {"我", "爱", "北京", "天安", "天安门"},
+ {"abc"},
+ {"隐", "可夫", "马尔可", "马尔可夫"},
+ {"雷猴", "是", "个", "好", "网站"},
+ {"“", "Microsoft", "”", "一词", "由", "“", "MICROcomputer", "(", "微型", "计算", "算机", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
+ {"草泥马", "和", "欺实", "马", "是", "今年", "的", "流行", "词汇"},
+ {"伊藤", "洋华堂", "总府", "店"},
+ {"中国", "科学", "学院", "计算", "技术", "研究", "科学院", "研究所", "中国科学院计算技术研究所"},
+ {"罗密欧", "与", "朱丽叶"},
+ {"我", "购买", "了", "道具", "和", "服装"},
+ {"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断", "改进", "不断改进", ",", "避免", "敞帚", "自珍"},
+ {"湖北", "湖北省", "石首", "石首市"},
+ {"湖北", "湖北省", "十堰", "十堰市"},
+ {"经理", "总经理", "完成", "了", "这件", "事情"},
+ {"电脑", "修好", "了"},
+ {"做好", "了", "这件", "事情", "就", "一了百了", "了"},
+ {"人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"我们", "买", "了", "一个", "美的", "空调"},
+ {"线程", "初始", "初始化", "时", "我们", "要", "注意"},
+ {"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
+ {"祝", "你", "马到功成"},
+ {"他", "掉", "进", "了", "无底", "无底洞", "里"},
+ {"中国", "的", "首都", "是", "北京"},
+ {"孙君意"},
+ {"外交", "外交部", "发言", "发言人", "马朝旭"},
+ {"领导", "领导人", "会议", "和", "第四", "四届", "第四届", "东亚", "峰会"},
+ {"在", "过去", "的", "这", "五年"},
+ {"还", "需要", "很长", "的", "路", "要", "走"},
+ {"60", "周年", "首都", "阅兵"},
+ {"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"买", "水果", "然后", "来", "世博", "博园", "世博园"},
+ {"买", "水果", "然后", "去", "世博", "博园", "世博园"},
+ {"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
+ {"存在", "即", "合理"},
+ {"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
+ {"I", " ", "love", "你", ",", "不以", "以为", "不以为耻", ",", "反", "以为", "rong"},
+ {"因"},
+ {},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"什么", "为什么", "我", "不能", "拥有", "想要", "的", "生活"},
+ {"后来", "我", "才"},
+ {"此次", "来", "中国", "是", "为了"},
+ {"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"因为", "是因为", "和", "国家"},
+ {"老年", "搜索", "还", "支持"},
+ {"干脆", "就", "把", "那部", "蒙人", "的", "闲法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国", "国人", "人大", "常委", "委会", "常委会", "全国人大常委会", "第三", "三次", "第三次", "审议", "侵权", "责任", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中本", "已", "处于", "弱势", "地位", "的", "消费", "消费者", "由此", "将", "陷入", "不复", "万劫不复", "的", "境地", "。", " "},
+ {"大"},
+ {},
+ {"他", "说", "的", "确实", "在理"},
+ {"长春", "市长", "春节", "讲话"},
+ {"结婚", "的", "和", "尚未", "结婚", "的"},
+ {"结合", "成", "分子", "时"},
+ {"旅游", "和", "服务", "是", "最好", "的"},
+ {"这件", "事情", "的确", "是", "我", "的", "错"},
+ {"供", "大家", "参考", "指正"},
+ {"哈尔", "哈尔滨", "政府", "公布", "塌桥", "原因"},
+ {"我", "在", "机场", "入口", "入口处"},
+ {"邢永臣", "摄影", "报道"},
+ {"BP", "神经", "网络", "神经网", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分", "分度", "区分度", "?"},
+ {"南京", "京市", "南京市", "长江", "大桥", "长江大桥"},
+ {"应", "一些", "使用", "用者", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
+ {"长春", "长春市", "长春", "药店"},
+ {"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
+ {"锦涛", "胡锦涛", "是", "热爱", "世界", "和平", "的", "政治", "政治局", "常委"},
+ {"程序", "程序员", "祝", "海林", "和", "朱会震", "是", "在", "孙健", "的", "左面", "和", "右面", ",", " ", "范凯", "在", "最", "右面", ".", "再往", "左", "是", "李松洪"},
+ {"一次", "一次性", "交", "多少", "钱"},
+ {"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
+ {"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚", "和尚头"},
+ {"我", "是", "中华", "华人", "人民", "共和", "共和国", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和", "共和党", "党员", ";", " ", "地铁", "和平", "和平门", "站"},
+ {"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
+ {"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
+ {"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3.14159"},
+ {"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他开", "一辆", "黑色", "的士", "。"},
+ {"枪杆", "杆子", "枪杆子", "中", "出", "政权"},
}
- cutForSearchNoHMMResult = [][]string{[]string{"这", "是", "一个", "伸手", "不见", "五指", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "悟空", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
- []string{"我", "不", "喜欢", "日本", "和服", "。"},
- []string{"雷猴", "回归", "人间", "。"},
- []string{"工信处", "干事", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换", "换机", "交换机", "等", "技术", "技术性", "器件", "的", "安装", "工作"},
- []string{"我", "需要", "廉租", "租房", "廉租房"},
- []string{"永和", "服装", "饰品", "有限", "公司", "有限公司"},
- []string{"我", "爱", "北京", "天安", "天安门"},
- []string{"abc"},
- []string{"隐", "可夫", "马尔可", "马尔可夫"},
- []string{"雷猴", "是", "个", "好", "网站"},
- []string{"“", "Microsoft", "”", "一", "词", "由", "“", "MICROcomputer", "(", "微型", "计算", "算机", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
- []string{"草泥马", "和", "欺", "实", "马", "是", "今年", "的", "流行", "词汇"},
- []string{"伊", "藤", "洋华堂", "总府", "店"},
- []string{"中国", "科学", "学院", "计算", "技术", "研究", "科学院", "研究所", "中国科学院计算技术研究所"},
- []string{"罗密欧", "与", "朱丽叶"},
- []string{"我", "购买", "了", "道具", "和", "服装"},
- []string{"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断", "改进", "不断改进", ",", "避免", "敞", "帚", "自珍"},
- []string{"湖北", "湖北省", "石首", "石首市"},
- []string{"湖北", "湖北省", "十堰", "十堰市"},
- []string{"经理", "总经理", "完成", "了", "这件", "事情"},
- []string{"电脑", "修好", "了"},
- []string{"做好", "了", "这件", "事情", "就", "一了百了", "了"},
- []string{"人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"我们", "买", "了", "一个", "美的", "空调"},
- []string{"线程", "初始", "初始化", "时", "我们", "要", "注意"},
- []string{"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
- []string{"祝", "你", "马到功成"},
- []string{"他", "掉", "进", "了", "无底", "无底洞", "里"},
- []string{"中国", "的", "首都", "是", "北京"},
- []string{"孙", "君", "意"},
- []string{"外交", "外交部", "发言", "发言人", "马朝旭"},
- []string{"领导", "领导人", "会议", "和", "第四", "四届", "第四届", "东亚", "峰会"},
- []string{"在", "过去", "的", "这", "五年"},
- []string{"还", "需要", "很", "长", "的", "路", "要", "走"},
- []string{"60", "周年", "首都", "阅兵"},
- []string{"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"买", "水果", "然后", "来", "世博", "博园", "世博园"},
- []string{"买", "水果", "然后", "去", "世博", "博园", "世博园"},
- []string{"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
- []string{"存在", "即", "合理"},
- []string{"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
- []string{"I", " ", "love", "你", ",", "不以", "以为", "不以为耻", ",", "反", "以为", "rong"},
- []string{"因"},
- []string{},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
- []string{"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"什么", "为什么", "我", "不能", "拥有", "想要", "的", "生活"},
- []string{"后来", "我", "才"},
- []string{"此次", "来", "中国", "是", "为了"},
- []string{"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"因为", "是因为", "和", "国家"},
- []string{"老年", "搜索", "还", "支持"},
- []string{"干脆", "就", "把", "那", "部", "蒙", "人", "的", "闲", "法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国", "国人", "人大", "常委", "委会", "常委会", "全国人大常委会", "第三", "三次", "第三次", "审议", "侵权", "责任", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中", "本", "已", "处于", "弱势", "地位", "的", "消费", "消费者", "由此", "将", "陷入", "不复", "万劫不复", "的", "境地", "。", " "},
- []string{"大"},
- []string{},
- []string{"他", "说", "的", "确实", "在", "理"},
- []string{"长春", "市长", "春节", "讲话"},
- []string{"结婚", "的", "和", "尚未", "结婚", "的"},
- []string{"结合", "成", "分子", "时"},
- []string{"旅游", "和", "服务", "是", "最好", "的"},
- []string{"这件", "事情", "的确", "是", "我", "的", "错"},
- []string{"供", "大家", "参考", "指正"},
- []string{"哈尔", "哈尔滨", "政府", "公布", "塌", "桥", "原因"},
- []string{"我", "在", "机场", "入口", "入口处"},
- []string{"邢", "永", "臣", "摄影", "报道"},
- []string{"BP", "神经", "网络", "神经网", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分", "分度", "区分度", "?"},
- []string{"南京", "京市", "南京市", "长江", "大桥", "长江大桥"},
- []string{"应", "一些", "使用", "用者", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
- []string{"长春", "长春市", "长春", "药店"},
- []string{"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
- []string{"锦涛", "胡锦涛", "是", "热爱", "世界", "和平", "的", "政治", "政治局", "常委"},
- []string{"程序", "程序员", "祝", "海林", "和", "朱", "会", "震", "是", "在", "孙", "健", "的", "左面", "和", "右面", ",", " ", "范", "凯", "在", "最", "右面", ".", "再", "往", "左", "是", "李", "松", "洪"},
- []string{"一次", "一次性", "交", "多少", "钱"},
- []string{"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
- []string{"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚", "和尚头"},
- []string{"我", "是", "中华", "华人", "人民", "共和", "共和国", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和", "共和党", "党员", ";", " ", "地铁", "和平", "和平门", "站"},
- []string{"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
- []string{"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
- []string{"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3", ".", "14159"},
- []string{"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他", "开", "一辆", "黑色", "的士", "。"},
- []string{"枪杆", "杆子", "枪杆子", "中", "出", "政权"},
+ cutForSearchNoHMMResult = [][]string{{"这", "是", "一个", "伸手", "不见", "五指", "伸手不见五指", "的", "黑夜", "。", "我", "叫", "悟空", "孙悟空", ",", "我", "爱", "北京", ",", "我", "爱", "Python", "和", "C++", "。"},
+ {"我", "不", "喜欢", "日本", "和服", "。"},
+ {"雷猴", "回归", "人间", "。"},
+ {"工信处", "干事", "女干事", "每月", "经过", "下属", "科室", "都", "要", "亲口", "交代", "24", "口", "交换", "换机", "交换机", "等", "技术", "技术性", "器件", "的", "安装", "工作"},
+ {"我", "需要", "廉租", "租房", "廉租房"},
+ {"永和", "服装", "饰品", "有限", "公司", "有限公司"},
+ {"我", "爱", "北京", "天安", "天安门"},
+ {"abc"},
+ {"隐", "可夫", "马尔可", "马尔可夫"},
+ {"雷猴", "是", "个", "好", "网站"},
+ {"“", "Microsoft", "”", "一", "词", "由", "“", "MICROcomputer", "(", "微型", "计算", "算机", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两", "部分", "组成"},
+ {"草泥马", "和", "欺", "实", "马", "是", "今年", "的", "流行", "词汇"},
+ {"伊", "藤", "洋华堂", "总府", "店"},
+ {"中国", "科学", "学院", "计算", "技术", "研究", "科学院", "研究所", "中国科学院计算技术研究所"},
+ {"罗密欧", "与", "朱丽叶"},
+ {"我", "购买", "了", "道具", "和", "服装"},
+ {"PS", ":", " ", "我", "觉得", "开源", "有", "一个", "好处", ",", "就是", "能够", "敦促", "自己", "不断", "改进", "不断改进", ",", "避免", "敞", "帚", "自珍"},
+ {"湖北", "湖北省", "石首", "石首市"},
+ {"湖北", "湖北省", "十堰", "十堰市"},
+ {"经理", "总经理", "完成", "了", "这件", "事情"},
+ {"电脑", "修好", "了"},
+ {"做好", "了", "这件", "事情", "就", "一了百了", "了"},
+ {"人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"我们", "买", "了", "一个", "美的", "空调"},
+ {"线程", "初始", "初始化", "时", "我们", "要", "注意"},
+ {"一个", "分子", "是", "由", "好多", "原子", "组织", "成", "的"},
+ {"祝", "你", "马到功成"},
+ {"他", "掉", "进", "了", "无底", "无底洞", "里"},
+ {"中国", "的", "首都", "是", "北京"},
+ {"孙", "君", "意"},
+ {"外交", "外交部", "发言", "发言人", "马朝旭"},
+ {"领导", "领导人", "会议", "和", "第四", "四届", "第四届", "东亚", "峰会"},
+ {"在", "过去", "的", "这", "五年"},
+ {"还", "需要", "很", "长", "的", "路", "要", "走"},
+ {"60", "周年", "首都", "阅兵"},
+ {"你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"买", "水果", "然后", "来", "世博", "博园", "世博园"},
+ {"买", "水果", "然后", "去", "世博", "博园", "世博园"},
+ {"但是", "后来", "我", "才", "知道", "你", "是", "对", "的"},
+ {"存在", "即", "合理"},
+ {"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
+ {"I", " ", "love", "你", ",", "不以", "以为", "不以为耻", ",", "反", "以为", "rong"},
+ {"因"},
+ {},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
+ {"hello", "你好", "人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"什么", "为什么", "我", "不能", "拥有", "想要", "的", "生活"},
+ {"后来", "我", "才"},
+ {"此次", "来", "中国", "是", "为了"},
+ {"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"其实", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"因为", "是因为", "和", "国家"},
+ {"老年", "搜索", "还", "支持"},
+ {"干脆", "就", "把", "那", "部", "蒙", "人", "的", "闲", "法", "给", "废", "了", "拉倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国", "国人", "人大", "常委", "委会", "常委会", "全国人大常委会", "第三", "三次", "第三次", "审议", "侵权", "责任", "责任法", "草案", ",", "删除", "了", "有关", "医疗", "损害", "责任", "“", "举证", "倒置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中", "本", "已", "处于", "弱势", "地位", "的", "消费", "消费者", "由此", "将", "陷入", "不复", "万劫不复", "的", "境地", "。", " "},
+ {"大"},
+ {},
+ {"他", "说", "的", "确实", "在", "理"},
+ {"长春", "市长", "春节", "讲话"},
+ {"结婚", "的", "和", "尚未", "结婚", "的"},
+ {"结合", "成", "分子", "时"},
+ {"旅游", "和", "服务", "是", "最好", "的"},
+ {"这件", "事情", "的确", "是", "我", "的", "错"},
+ {"供", "大家", "参考", "指正"},
+ {"哈尔", "哈尔滨", "政府", "公布", "塌", "桥", "原因"},
+ {"我", "在", "机场", "入口", "入口处"},
+ {"邢", "永", "臣", "摄影", "报道"},
+ {"BP", "神经", "网络", "神经网", "神经网络", "如何", "训练", "才能", "在", "分类", "时", "增加", "区分", "分度", "区分度", "?"},
+ {"南京", "京市", "南京市", "长江", "大桥", "长江大桥"},
+ {"应", "一些", "使用", "用者", "使用者", "的", "建议", ",", "也", "为了", "便于", "利用", "NiuTrans", "用于", "SMT", "研究"},
+ {"长春", "长春市", "长春", "药店"},
+ {"邓颖超", "生前", "最", "喜欢", "的", "衣服"},
+ {"锦涛", "胡锦涛", "是", "热爱", "世界", "和平", "的", "政治", "政治局", "常委"},
+ {"程序", "程序员", "祝", "海林", "和", "朱", "会", "震", "是", "在", "孙", "健", "的", "左面", "和", "右面", ",", " ", "范", "凯", "在", "最", "右面", ".", "再", "往", "左", "是", "李", "松", "洪"},
+ {"一次", "一次性", "交", "多少", "钱"},
+ {"两块", "五", "一套", ",", "三块", "八", "一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
+ {"小", "和尚", "留", "了", "一个", "像", "大", "和尚", "一样", "的", "和尚", "和尚头"},
+ {"我", "是", "中华", "华人", "人民", "共和", "共和国", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共和", "共和党", "党员", ";", " ", "地铁", "和平", "和平门", "站"},
+ {"张晓梅", "去", "人民", "医院", "做", "了", "个", "B超", "然后", "去", "买", "了", "件", "T恤"},
+ {"AT&T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
+ {"C++", "和", "c#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3", ".", "14159"},
+ {"你", "认识", "那个", "和", "主席", "握手", "的", "的哥", "吗", "?", "他", "开", "一辆", "黑色", "的士", "。"},
+ {"枪杆", "杆子", "枪杆子", "中", "出", "政权"},
}
userDictCutResult = [][]string{
- []string{"这是", "一个", "伸手", "不见", "五指", "的", "黑夜", "。", "我", "叫", "孙悟空", ",", "我", "爱北京", ",", "我", "爱", "Python", "和", "C", "++", "。"},
- []string{"我", "不", "喜欢", "日本", "和", "服", "。"},
- []string{"雷猴", "回归人间", "。"},
- []string{"工信", "处女", "干事", "每", "月", "经过", "下", "属", "科室", "都", "要", "亲口", "交代", "24", "口交换机", "等", "技术性", "器件", "的", "安装", "工作"},
- []string{"我", "需要", "廉租房"},
- []string{"永和服", "装饰品", "有", "限公司"},
- []string{"我", "爱北京", "天安门"},
- []string{"abc"},
- []string{"隐马尔", "可夫"},
- []string{"雷猴", "是", "个", "好", "网站"},
- []string{"“", "Microsoft", "”", "一词", "由", "“", "MICROcomputer", "(", "微型", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两部分", "组成"},
- []string{"草泥", "马", "和", "欺实", "马", "是", "今", "年", "的", "流行", "词汇"},
- []string{"伊藤洋华堂", "总府", "店"},
- []string{"中国", "科学院", "计算", "技术", "研究", "所"},
- []string{"罗密欧", "与", "朱丽叶"},
- []string{"我购", "买", "了", "道", "具", "和", "服装"},
- []string{"PS", ":", " ", "我觉", "得", "开源", "有", "一个", "好", "处", ",", "就", "是", "能够", "敦促", "自己", "不断", "改进", ",", "避免", "敞帚", "自珍"},
- []string{"湖北省", "石首市"},
- []string{"湖北省", "十堰市"},
- []string{"总经理", "完成", "了", "这件", "事情"},
- []string{"电脑", "修好", "了"},
- []string{"做", "好", "了", "这件", "事情", "就", "一", "了", "百", "了", "了"},
- []string{"人们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"我们", "买", "了", "一个", "美", "的", "空调"},
- []string{"线程", "初始", "化时", "我们", "要", "注意"},
- []string{"一个", "分子", "是", "由", "好", "多", "原子", "组织成", "的"},
- []string{"祝", "你", "马到", "功成"},
- []string{"他", "掉", "进", "了", "无底", "洞里"},
- []string{"中国", "的", "首", "都", "是", "北京"},
- []string{"孙君意"},
- []string{"外交部", "发言人", "马朝旭"},
- []string{"领导", "人会议", "和", "第四届", "东亚峰", "会"},
- []string{"在", "过", "去", "的", "这五年"},
- []string{"还", "需要", "很长", "的", "路", "要", "走"},
- []string{"60", "周年首", "都", "阅兵"},
- []string{"你", "好人", "们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"买水果", "然后", "来", "世博园"},
- []string{"买水果", "然后", "去", "世博园"},
- []string{"但", "是", "后", "来", "我", "才", "知道", "你", "是", "对", "的"},
- []string{"存在", "即", "合理"},
- []string{"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
- []string{"I", " ", "love", "你", ",", "不以", "为耻", ",", "反以", "为", "rong"},
- []string{"因"},
- []string{},
- []string{"hello", "你", "好人", "们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
- []string{"hello", "你", "好人", "们", "审美", "的", "观点", "是", "不同", "的"},
- []string{"为", "什么", "我", "不能", "拥有", "想", "要", "的", "生活"},
- []string{"后来", "我", "才"},
- []string{"此次", "来", "中国", "是", "为", "了"},
- []string{"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"其实", "使", "用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
- []string{"是", "因为", "和", "国家"},
- []string{"老年", "搜索", "还", "支持"},
- []string{"干脆", "就", "把", "那部", "蒙人", "的", "闲法", "给", "废", "了", "拉", "倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国人", "大常委会", "第三次", "审议", "侵权责", "任法", "草案", ",", "删除", "了", "有", "关医疗", "损害", "责任", "“", "举证", "倒", "置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中本", "已", "处于", "弱势", "地位", "的", "消费者", "由", "此", "将", "陷入", "万劫", "不复", "的", "境地", "。", " "},
- []string{"大"},
- []string{},
- []string{"他", "说", "的", "确实", "在", "理"},
- []string{"长春市", "长春节", "讲话"},
- []string{"结婚", "的", "和", "尚未", "结婚", "的"},
- []string{"结合成", "分子", "时"},
- []string{"旅游", "和", "服务", "是", "最", "好", "的"},
- []string{"这件", "事情", "的", "确是", "我", "的", "错"},
- []string{"供大家", "参考", "指正"},
- []string{"哈尔滨", "政府", "公布塌桥", "原因"},
- []string{"我", "在", "机场", "入口", "处"},
- []string{"邢永臣", "摄影", "报道"},
- []string{"BP", "神经", "网络", "如何", "训练", "才", "能", "在", "分类", "时", "增加区", "分度", "?"},
- []string{"南京市", "长江大桥"},
- []string{"应一些", "使", "用者", "的", "建议", ",", "也", "为", "了", "便", "于", "利用", "NiuTrans", "用于", "SMT", "研究"},
- []string{"长春市", "长春药店"},
- []string{"邓颖", "超生", "前", "最", "喜欢", "的", "衣服"},
- []string{"胡锦涛", "是", "热爱世界", "和", "平", "的", "政治局", "常委"},
- []string{"程序员", "祝海林", "和", "朱会震", "是", "在", "孙健", "的", "左面", "和", "右面", ",", " ", "范凯", "在", "最右面", ".", "再往", "左", "是", "李松洪"},
- []string{"一次性", "交多少", "钱"},
- []string{"两块", "五一套", ",", "三块", "八一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
- []string{"小", "和", "尚留", "了", "一个", "像", "大", "和", "尚", "一样", "的", "和", "尚头"},
- []string{"我", "是", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共", "和", "党", "党员", ";", " ", "地铁", "和", "平门", "站"},
- []string{"张晓梅", "去", "人民医院", "做", "了", "个", "B", "超然", "后", "去", "买", "了", "件", "T", "恤"},
- []string{"AT", "&", "T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
- []string{"C", "++", "和", "c", "#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3.14159"},
- []string{"你", "认识", "那个", "和", "主席握", "手", "的", "的", "哥", "吗", "?", "他开", "一辆", "黑色", "的", "士", "。"},
- []string{"枪杆子", "中", "出政权"},
+ {"这是", "一个", "伸手", "不见", "五指", "的", "黑夜", "。", "我", "叫", "孙悟空", ",", "我", "爱北京", ",", "我", "爱", "Python", "和", "C", "++", "。"},
+ {"我", "不", "喜欢", "日本", "和", "服", "。"},
+ {"雷猴", "回归人间", "。"},
+ {"工信", "处女", "干事", "每", "月", "经过", "下", "属", "科室", "都", "要", "亲口", "交代", "24", "口交换机", "等", "技术性", "器件", "的", "安装", "工作"},
+ {"我", "需要", "廉租房"},
+ {"永和服", "装饰品", "有", "限公司"},
+ {"我", "爱北京", "天安门"},
+ {"abc"},
+ {"隐马尔", "可夫"},
+ {"雷猴", "是", "个", "好", "网站"},
+ {"“", "Microsoft", "”", "一词", "由", "“", "MICROcomputer", "(", "微型", "计算机", ")", "”", "和", "“", "SOFTware", "(", "软件", ")", "”", "两部分", "组成"},
+ {"草泥", "马", "和", "欺实", "马", "是", "今", "年", "的", "流行", "词汇"},
+ {"伊藤洋华堂", "总府", "店"},
+ {"中国", "科学院", "计算", "技术", "研究", "所"},
+ {"罗密欧", "与", "朱丽叶"},
+ {"我购", "买", "了", "道", "具", "和", "服装"},
+ {"PS", ":", " ", "我觉", "得", "开源", "有", "一个", "好", "处", ",", "就", "是", "能够", "敦促", "自己", "不断", "改进", ",", "避免", "敞帚", "自珍"},
+ {"湖北省", "石首市"},
+ {"湖北省", "十堰市"},
+ {"总经理", "完成", "了", "这件", "事情"},
+ {"电脑", "修好", "了"},
+ {"做", "好", "了", "这件", "事情", "就", "一", "了", "百", "了", "了"},
+ {"人们", "审美", "的", "观点", "是", "不同", "的"},
+ {"我们", "买", "了", "一个", "美", "的", "空调"},
+ {"线程", "初始", "化时", "我们", "要", "注意"},
+ {"一个", "分子", "是", "由", "好", "多", "原子", "组织成", "的"},
+ {"祝", "你", "马到", "功成"},
+ {"他", "掉", "进", "了", "无底", "洞里"},
+ {"中国", "的", "首", "都", "是", "北京"},
+ {"孙君意"},
+ {"外交部", "发言人", "马朝旭"},
+ {"领导", "人会议", "和", "第四届", "东亚峰", "会"},
+ {"在", "过", "去", "的", "这五年"},
+ {"还", "需要", "很长", "的", "路", "要", "走"},
+ {"60", "周年首", "都", "阅兵"},
+ {"你", "好人", "们", "审美", "的", "观点", "是", "不同", "的"},
+ {"买水果", "然后", "来", "世博园"},
+ {"买水果", "然后", "去", "世博园"},
+ {"但", "是", "后", "来", "我", "才", "知道", "你", "是", "对", "的"},
+ {"存在", "即", "合理"},
+ {"的", "的", "的", "的", "的", "在", "的", "的", "的", "的", "就", "以", "和", "和", "和"},
+ {"I", " ", "love", "你", ",", "不以", "为耻", ",", "反以", "为", "rong"},
+ {"因"},
+ {},
+ {"hello", "你", "好人", "们", "审美", "的", "观点", "是", "不同", "的"},
+ {"很", "好", "但", "主要", "是", "基于", "网页", "形式"},
+ {"hello", "你", "好人", "们", "审美", "的", "观点", "是", "不同", "的"},
+ {"为", "什么", "我", "不能", "拥有", "想", "要", "的", "生活"},
+ {"后来", "我", "才"},
+ {"此次", "来", "中国", "是", "为", "了"},
+ {"使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {",", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"其实", "使", "用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"好人", "使用", "了", "它", "就", "可以", "解决", "一些", "问题"},
+ {"是", "因为", "和", "国家"},
+ {"老年", "搜索", "还", "支持"},
+ {"干脆", "就", "把", "那部", "蒙人", "的", "闲法", "给", "废", "了", "拉", "倒", "!", "RT", " ", "@", "laoshipukong", " ", ":", " ", "27", "日", ",", "全国人", "大常委会", "第三次", "审议", "侵权责", "任法", "草案", ",", "删除", "了", "有", "关医疗", "损害", "责任", "“", "举证", "倒", "置", "”", "的", "规定", "。", "在", "医患", "纠纷", "中本", "已", "处于", "弱势", "地位", "的", "消费者", "由", "此", "将", "陷入", "万劫", "不复", "的", "境地", "。", " "},
+ {"大"},
+ {},
+ {"他", "说", "的", "确实", "在", "理"},
+ {"长春市", "长春节", "讲话"},
+ {"结婚", "的", "和", "尚未", "结婚", "的"},
+ {"结合成", "分子", "时"},
+ {"旅游", "和", "服务", "是", "最", "好", "的"},
+ {"这件", "事情", "的", "确是", "我", "的", "错"},
+ {"供大家", "参考", "指正"},
+ {"哈尔滨", "政府", "公布塌桥", "原因"},
+ {"我", "在", "机场", "入口", "处"},
+ {"邢永臣", "摄影", "报道"},
+ {"BP", "神经", "网络", "如何", "训练", "才", "能", "在", "分类", "时", "增加区", "分度", "?"},
+ {"南京市", "长江大桥"},
+ {"应一些", "使", "用者", "的", "建议", ",", "也", "为", "了", "便", "于", "利用", "NiuTrans", "用于", "SMT", "研究"},
+ {"长春市", "长春药店"},
+ {"邓颖", "超生", "前", "最", "喜欢", "的", "衣服"},
+ {"胡锦涛", "是", "热爱世界", "和", "平", "的", "政治局", "常委"},
+ {"程序员", "祝海林", "和", "朱会震", "是", "在", "孙健", "的", "左面", "和", "右面", ",", " ", "范凯", "在", "最右面", ".", "再往", "左", "是", "李松洪"},
+ {"一次性", "交多少", "钱"},
+ {"两块", "五一套", ",", "三块", "八一斤", ",", "四块", "七", "一本", ",", "五块", "六", "一条"},
+ {"小", "和", "尚留", "了", "一个", "像", "大", "和", "尚", "一样", "的", "和", "尚头"},
+ {"我", "是", "中华人民共和国", "公民", ";", "我", "爸爸", "是", "共", "和", "党", "党员", ";", " ", "地铁", "和", "平门", "站"},
+ {"张晓梅", "去", "人民医院", "做", "了", "个", "B", "超然", "后", "去", "买", "了", "件", "T", "恤"},
+ {"AT", "&", "T", "是", "一件", "不错", "的", "公司", ",", "给", "你", "发", "offer", "了", "吗", "?"},
+ {"C", "++", "和", "c", "#", "是", "什么", "关系", "?", "11", "+", "122", "=", "133", ",", "是", "吗", "?", "PI", "=", "3.14159"},
+ {"你", "认识", "那个", "和", "主席握", "手", "的", "的", "哥", "吗", "?", "他开", "一辆", "黑色", "的", "士", "。"},
+ {"枪杆子", "中", "出政权"},
}
)
@@ -619,23 +619,15 @@ func init() {
seg.LoadDictionary("dict.txt")
}
-func chanToArray(ch <-chan string) []string {
- var result []string
- for word := range ch {
- result = append(result, word)
- }
- return result
-}
-
func TestCutDAG(t *testing.T) {
- result := chanToArray(seg.cutDAG("BP神经网络如何训练才能在分类时增加区分度?"))
+ result := seg.cutDAG("BP神经网络如何训练才能在分类时增加区分度?")
if len(result) != 11 {
t.Fatal(result)
}
}
func TestCutDAGNoHmm(t *testing.T) {
- result := chanToArray(seg.cutDAGNoHMM("BP神经网络如何训练才能在分类时增加区分度?"))
+ result := seg.cutDAGNoHMM("BP神经网络如何训练才能在分类时增加区分度?")
if len(result) != 11 {
t.Fatal(result)
}
@@ -644,7 +636,7 @@ func TestCutDAGNoHmm(t *testing.T) {
func TestDefaultCut(t *testing.T) {
var result []string
for index, content := range testContents {
- result = chanToArray(seg.Cut(content, true))
+ result = seg.Cut(content, true)
if len(result) != len(defaultCutResult[index]) {
t.Errorf("default cut for %s length should be %d not %d\n",
content, len(defaultCutResult[index]), len(result))
@@ -662,7 +654,7 @@ func TestDefaultCut(t *testing.T) {
func TestCutAll(t *testing.T) {
var result []string
for index, content := range testContents {
- result = chanToArray(seg.CutAll(content))
+ result = seg.CutAll(content)
if len(result) != len(cutAllResult[index]) {
t.Errorf("cut all for %s length should be %d not %d\n",
content, len(cutAllResult[index]), len(result))
@@ -680,7 +672,7 @@ func TestCutAll(t *testing.T) {
func TestDefaultCutNoHMM(t *testing.T) {
var result []string
for index, content := range testContents {
- result = chanToArray(seg.Cut(content, false))
+ result = seg.Cut(content, false)
if len(result) != len(defaultCutNoHMMResult[index]) {
t.Fatalf("default cut no hmm for %s length should be %d not %d\n",
content, len(defaultCutNoHMMResult[index]), len(result))
@@ -696,7 +688,7 @@ func TestDefaultCutNoHMM(t *testing.T) {
func TestCutForSearch(t *testing.T) {
var result []string
for index, content := range testContents {
- result = chanToArray(seg.CutForSearch(content, true))
+ result = seg.CutForSearch(content, true)
if len(result) != len(cutForSearchResult[index]) {
t.Fatalf("cut for search for %s length should be %d not %d\n",
content, len(cutForSearchResult[index]), len(result))
@@ -708,7 +700,7 @@ func TestCutForSearch(t *testing.T) {
}
}
for index, content := range testContents {
- result = chanToArray(seg.CutForSearch(content, false))
+ result = seg.CutForSearch(content, false)
if len(result) != len(cutForSearchNoHMMResult[index]) {
t.Fatalf("cut for search no hmm for %s length should be %d not %d\n",
content, len(cutForSearchNoHMMResult[index]), len(result))
@@ -725,7 +717,7 @@ func TestLoadDictionary(t *testing.T) {
var result []string
seg.LoadDictionary("foobar.txt")
for index, content := range testContents {
- result = chanToArray(seg.Cut(content, true))
+ result = seg.Cut(content, true)
if len(result) != len(userDictCutResult[index]) {
t.Fatalf("default cut with user dictionary for %s length should be %d not %d\n",
content, len(userDictCutResult[index]), len(result))
@@ -745,7 +737,7 @@ func TestLoadUserDictionary(t *testing.T) {
sentence := "李小福是创新办主任也是云计算方面的专家; 什么是八一双鹿例如我输入一个带“韩玉赏鉴”的标题,在自定义词库中也增加了此词为N类型"
result := []string{"李小福", "是", "创新办", "主任", "也", "是", "云计算", "方面", "的", "专家", ";", " ", "什么", "是", "八一双鹿", "例如", "我", "输入", "一个", "带", "“", "韩玉赏鉴", "”", "的", "标题", ",", "在", "自定义词", "库中", "也", "增加", "了", "此", "词为", "N", "类型"}
- words := chanToArray(seg.Cut(sentence, true))
+ words := seg.Cut(sentence, true)
if len(words) != len(result) {
t.Fatal(len(words))
}
@@ -757,7 +749,7 @@ func TestLoadUserDictionary(t *testing.T) {
sentence = "easy_install is great"
result = []string{"easy_install", " ", "is", " ", "great"}
- words = chanToArray(seg.Cut(sentence, true))
+ words = seg.Cut(sentence, true)
if len(words) != len(result) {
t.Fatal(len(words))
}
@@ -769,7 +761,7 @@ func TestLoadUserDictionary(t *testing.T) {
sentence = "python 的正则表达式是好用的"
result = []string{"python", " ", "的", "正则表达式", "是", "好用", "的"}
- words = chanToArray(seg.Cut(sentence, true))
+ words = seg.Cut(sentence, true)
if len(words) != len(result) {
t.Fatal(words)
t.Fatal(result)
@@ -786,7 +778,7 @@ func BenchmarkCutNoHMM(b *testing.B) {
sentence := "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
b.ResetTimer()
for i := 0; i < b.N; i++ {
- chanToArray(seg.Cut(sentence, false))
+ seg.Cut(sentence, false)
}
}
@@ -794,7 +786,7 @@ func BenchmarkCut(b *testing.B) {
sentence := "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
b.ResetTimer()
for i := 0; i < b.N; i++ {
- chanToArray(seg.Cut(sentence, true))
+ seg.Cut(sentence, true)
}
}
@@ -802,7 +794,7 @@ func BenchmarkCutAll(b *testing.B) {
sentence := "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
b.ResetTimer()
for i := 0; i < b.N; i++ {
- chanToArray(seg.CutAll(sentence))
+ seg.CutAll(sentence)
}
}
@@ -810,7 +802,7 @@ func BenchmarkCutForSearchNoHMM(b *testing.B) {
sentence := "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
b.ResetTimer()
for i := 0; i < b.N; i++ {
- chanToArray(seg.CutForSearch(sentence, false))
+ seg.CutForSearch(sentence, false)
}
}
@@ -818,6 +810,6 @@ func BenchmarkCutForSearch(b *testing.B) {
sentence := "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
b.ResetTimer()
for i := 0; i < b.N; i++ {
- chanToArray(seg.CutForSearch(sentence, true))
+ seg.CutForSearch(sentence, true)
}
}
diff --git a/posseg/char_state_tab.go b/posseg/char_state_tab.go
old mode 100644
new mode 100755
diff --git a/posseg/char_state_tab_test.go b/posseg/char_state_tab_test.go
old mode 100644
new mode 100755
diff --git a/posseg/dictionary.go b/posseg/dictionary.go
old mode 100644
new mode 100755
index 9015bc5..4a12d21
--- a/posseg/dictionary.go
+++ b/posseg/dictionary.go
@@ -4,7 +4,7 @@ import (
"math"
"sync"
- "github.com/wangbin/jiebago/dictionary"
+ "github.com/fumiama/jieba/dictionary"
)
// A Dictionary represents a thread-safe dictionary used for word segmentation.
diff --git a/posseg/example_test.go b/posseg/example_test.go
old mode 100644
new mode 100755
index 2b5a5ae..d1ee2bd
--- a/posseg/example_test.go
+++ b/posseg/example_test.go
@@ -3,7 +3,7 @@ package posseg_test
import (
"fmt"
- "github.com/wangbin/jiebago/posseg"
+ "github.com/fumiama/jieba/posseg"
)
func Example() {
diff --git a/posseg/posseg.go b/posseg/posseg.go
old mode 100644
new mode 100755
index 02ec47a..4f58dd4
--- a/posseg/posseg.go
+++ b/posseg/posseg.go
@@ -5,7 +5,7 @@ import (
"math"
"regexp"
- "github.com/wangbin/jiebago/util"
+ "github.com/fumiama/jieba/util"
)
var (
diff --git a/posseg/posseg_test.go b/posseg/posseg_test.go
old mode 100644
new mode 100755
diff --git a/posseg/prob_emit.go b/posseg/prob_emit.go
old mode 100644
new mode 100755
diff --git a/posseg/prob_start.go b/posseg/prob_start.go
old mode 100644
new mode 100755
diff --git a/posseg/prob_trans.go b/posseg/prob_trans.go
old mode 100644
new mode 100755
diff --git a/posseg/viterbi.go b/posseg/viterbi.go
old mode 100644
new mode 100755
diff --git a/posseg/viterbi_test.go b/posseg/viterbi_test.go
old mode 100644
new mode 100755
diff --git a/tokenizers/analyzer.go b/tokenizers/analyzer.go
new file mode 100755
index 0000000..6af133a
--- /dev/null
+++ b/tokenizers/analyzer.go
@@ -0,0 +1,30 @@
+package tokenizers
+
+import (
+ "errors"
+
+ "github.com/blevesearch/bleve/analysis"
+ "github.com/blevesearch/bleve/registry"
+)
+
+type JiebaAnalyzer struct {
+}
+
+func analyzerConstructor(config map[string]interface{}, cache *registry.Cache) (*analysis.Analyzer, error) {
+ tokenizerName, ok := config["tokenizer"].(string)
+ if !ok {
+ return nil, errors.New("must specify tokenizer")
+ }
+ tokenizer, err := cache.TokenizerNamed(tokenizerName)
+ if err != nil {
+ return nil, err
+ }
+ alz := &analysis.Analyzer{
+ Tokenizer: tokenizer,
+ }
+ return alz, nil
+}
+
+func init() {
+ registry.RegisterAnalyzer("jieba", analyzerConstructor)
+}
diff --git a/tokenizers/example_bleve_test.go b/tokenizers/example_bleve_test.go
old mode 100644
new mode 100755
index f5da6b4..ef02505
--- a/tokenizers/example_bleve_test.go
+++ b/tokenizers/example_bleve_test.go
@@ -6,7 +6,7 @@ import (
"os"
"github.com/blevesearch/bleve"
- _ "github.com/wangbin/jiebago/tokenizers"
+ _ "github.com/fumiama/jieba/tokenizers"
)
func Example_beleveSearch() {
@@ -101,26 +101,26 @@ func Example_beleveSearch() {
// Output:
// Result of "水果世博园": 2 matches:
// 1. Doc 3, (1.099550)
- // Name: 买水果然后来世博园。
+ // Name: 买水果然后来世博园。
// 2. Doc 2, (0.031941)
- // Name: The second one 你 中文测试中文 is even more interesting! 吃水果
+ // Name: The second one 你 中文测试中文 is even more interesting! 吃水果
// Result of "你": 1 matches:
// 1. Doc 2, (0.391161)
- // Name: The second one 你 中文测试中文 is even more interesting! 吃水果
+ // Name: The second one 你 中文测试中文 is even more interesting! 吃水果
// Result of "first": 1 matches:
// 1. Doc 1, (0.512150)
- // Name: This is the first document we’ve added
+ // Name: This is the first document we’ve added
// Result of "中文": 1 matches:
// 1. Doc 2, (0.553186)
- // Name: The second one 你 中文测试中文 is even more interesting! 吃水果
+ // Name: The second one 你 中文测试中文 is even more interesting! 吃水果
// Result of "交换机": 2 matches:
// 1. Doc 4, (0.608495)
- // Name: 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作
+ // Name: 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作
// 2. Doc 5, (0.086700)
- // Name: 咱俩交换一下吧。
+ // Name: 咱俩交换一下吧。
// Result of "交换": 2 matches:
// 1. Doc 5, (0.534158)
- // Name: 咱俩交换一下吧。
+ // Name: 咱俩交换一下吧。
// 2. Doc 4, (0.296297)
- // Name: 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作
+ // Name: 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作
}
diff --git a/tokenizers/example_test.go b/tokenizers/example_test.go
old mode 100644
new mode 100755
index 2eeda34..62f490e
--- a/tokenizers/example_test.go
+++ b/tokenizers/example_test.go
@@ -3,7 +3,7 @@ package tokenizers_test
import (
"fmt"
- "github.com/wangbin/jiebago/tokenizers"
+ "github.com/fumiama/jieba/tokenizers"
)
func Example() {
diff --git a/tokenizers/tokenizer.go b/tokenizers/tokenizer.go
old mode 100644
new mode 100755
index 6311b5d..cc46891
--- a/tokenizers/tokenizer.go
+++ b/tokenizers/tokenizer.go
@@ -7,7 +7,7 @@ import (
"github.com/blevesearch/bleve/analysis"
"github.com/blevesearch/bleve/registry"
- "github.com/wangbin/jiebago"
+ jiebago "github.com/fumiama/jieba"
)
// Name is the jieba tokenizer name.
@@ -26,20 +26,20 @@ NewJiebaTokenizer creates a new JiebaTokenizer.
Parameters:
- dictFilePath: path of the dictioanry file.
+ dictFilePath: path of the dictioanry file.
- hmm: whether to use Hidden Markov Model to cut unknown words,
- i.e. not found in dictionary. For example word "安卓" (means "Android" in
- English) not in the dictionary file. If hmm is set to false, it will be
- cutted into two single words "安" and "卓", if hmm is set to true, it will
- be traded as one single word because Jieba using Hidden Markov Model with
- Viterbi algorithm to guess the best possibility.
+ hmm: whether to use Hidden Markov Model to cut unknown words,
+ i.e. not found in dictionary. For example word "安卓" (means "Android" in
+ English) not in the dictionary file. If hmm is set to false, it will be
+ cutted into two single words "安" and "卓", if hmm is set to true, it will
+ be traded as one single word because Jieba using Hidden Markov Model with
+ Viterbi algorithm to guess the best possibility.
- searchMode: whether to further cut long words into serveral short words.
- In Chinese, some long words may contains other words, for example "交换机"
- is a Chinese word for "Switcher", if sechMode is false, it will trade
- "交换机" as a single word. If searchMode is true, it will further split
- this word into "交换", "换机", which are valid Chinese words.
+ searchMode: whether to further cut long words into serveral short words.
+ In Chinese, some long words may contains other words, for example "交换机"
+ is a Chinese word for "Switcher", if sechMode is false, it will trade
+ "交换机" as a single word. If searchMode is true, it will further split
+ this word into "交换", "换机", which are valid Chinese words.
*/
func NewJiebaTokenizer(dictFilePath string, hmm, searchMode bool) (analysis.Tokenizer, error) {
var seg jiebago.Segmenter
@@ -60,7 +60,7 @@ func (jt *JiebaTokenizer) Tokenize(input []byte) analysis.TokenStream {
pos := 1
var width int
var gram string
- for word := range jt.seg.Cut(string(input), jt.hmm) {
+ for _, word := range jt.seg.Cut(string(input), jt.hmm) {
if jt.searchMode {
runes := []rune(word)
width = len(runes)
@@ -107,11 +107,11 @@ JiebaTokenizerConstructor creates a JiebaTokenizer.
Parameter config should contains at least one parameter:
- file: the path of the dictionary file.
+ file: the path of the dictionary file.
- hmm: optional, specify whether to use Hidden Markov Model, see NewJiebaTokenizer for details.
+ hmm: optional, specify whether to use Hidden Markov Model, see NewJiebaTokenizer for details.
- search: optional, speficy whether to use search mode, see NewJiebaTokenizer for details.
+ search: optional, speficy whether to use search mode, see NewJiebaTokenizer for details.
*/
func JiebaTokenizerConstructor(config map[string]interface{}, cache *registry.Cache) (
analysis.Tokenizer, error) {
diff --git a/tokenizers/tokenizer_test.go b/tokenizers/tokenizer_test.go
old mode 100644
new mode 100755
diff --git a/userdict.txt b/userdict.txt
old mode 100644
new mode 100755
diff --git a/util/util.go b/util/util.go
old mode 100644
new mode 100755
diff --git a/util/util_test.go b/util/util_test.go
old mode 100644
new mode 100755