Closed ColorfulDick closed 2 years ago
加了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))
过滤后,就是不带停止词的了。
谢谢老哥
package main
import ( "fmt"
)
var ( text = "第一次爱的人是谁演唱的" new, _ = gse.New("dict.txt")
)
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