老哥,停止词典一直不生效,加了
ColorfulDick opened this issue · 7 comments
package main
import (
"fmt"
"github.com/go-ego/gse"
)
var (
text = "第一次爱的人是谁演唱的"
new, _ = gse.New("dict.txt")
seg gse.Segmenter
)
func main() {
cut()
}
func cut() {
new.LoadStop("stop.txt")
new.AddStop("的")
new.AddStop("是") //加了这行也没用
fmt.Println("cut: ", new.Cut(text, true))
fmt.Println("cut all: ", new.CutAll(text))
fmt.Println("cut for search: ", new.CutSearch(text, true))
fmt.Println(new.String(text, true))
}
//控制台打印如下所示
//2022/02/18 17:44:34 Dict files path: [dict.txt]
//2022/02/18 17:44:34 Load the gse dictionary: "dict.txt"
//2022/02/18 17:44:34 Gse dictionary loaded finished.
//2022/02/18 17:44:34 Load the stop word dictionary: "stop.txt"
//cut: [第一次爱的人 是 谁 演唱 的]
//cut all: [第一次爱的人 是 谁 演唱 的]
//cut for search: [第一次爱的人 是 谁 演唱 的]
//第一次爱的人/n 是/x 谁/x 演唱/v 的/x
加了AddStop,停止词也没生效呀
在分词的时候并不会直接调用是否是停止词
,需要使用 seg.IsStop(string)
来自行判断是否为停止词。
一般姿势是,在分词后,使用 stop作为filter
对分词后的内容进行一次过滤。
Closed because of non-standard.
Add there have seg.Trim() and seg.Stop()
function.
在分词的时候并不会直接调用是否是
停止词
,需要使用seg.IsStop(string)
来自行判断是否为停止词。一般姿势是,在分词后,使用 stop作为
filter
对分词后的内容进行一次过滤。
好哥哥,能在分词之前就去掉吗?如果每次分词都过滤一次,也太浪费时间了
看上面 作者回复你了 可以使用 seg.Trim()
来处理下分词结果就可以了,就拿你的例子来说。
可以这样使用:
new.Trim(new.CutSearch(text, true))
过滤后,就是不带停止词的了。
Closed because of non-standard. Add there have
seg.Trim() and seg.Stop()
function.
oh!THANKS!
看上面 作者回复你了 可以使用
seg.Trim()
来处理下分词结果就可以了,就拿你的例子来说。可以这样使用:
new.Trim(new.CutSearch(text, true))
过滤后,就是不带停止词的了。
谢谢老哥