mirror of
https://github.com/fumiama/jieba.git
synced 2026-06-30 09:00:30 +08:00
small refactor
This commit is contained in:
16
dict.go
16
dict.go
@@ -26,7 +26,13 @@ func DictPath(dictFileName string) (string, error) {
|
|||||||
return dictFilePath, nil
|
return dictFilePath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseDictFile(dictFile *os.File) (wtfs []*WordTagFreq, err error) {
|
func ParseDictFile(dictFilePath string) (wtfs []*WordTagFreq, err error) {
|
||||||
|
var dictFile *os.File
|
||||||
|
dictFile, err = os.Open(dictFilePath)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
scanner := bufio.NewScanner(dictFile)
|
scanner := bufio.NewScanner(dictFile)
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
line := scanner.Text()
|
line := scanner.Text()
|
||||||
@@ -38,7 +44,7 @@ func ParseDictFile(dictFile *os.File) (wtfs []*WordTagFreq, err error) {
|
|||||||
if length > 1 {
|
if length > 1 {
|
||||||
wtf.Freq, err = strconv.ParseFloat(fields[1], 64)
|
wtf.Freq, err = strconv.ParseFloat(fields[1], 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if length > 2 {
|
if length > 2 {
|
||||||
@@ -46,8 +52,6 @@ func ParseDictFile(dictFile *os.File) (wtfs []*WordTagFreq, err error) {
|
|||||||
}
|
}
|
||||||
wtfs = append(wtfs, wtf)
|
wtfs = append(wtfs, wtf)
|
||||||
}
|
}
|
||||||
if err = scanner.Err(); err != nil {
|
err = scanner.Err()
|
||||||
return nil, err
|
return
|
||||||
}
|
|
||||||
return wtfs, nil
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,26 @@ func init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
func SetDictionary(dictFileName string) error {
|
||||||
|
err := jiebago.SetDictionary(dictFileName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dictFilePath, err := jiebago.DictPath(dictFileName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dictFile, err := os.Open(dictFilePath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer dictFile.Close()
|
||||||
|
|
||||||
|
wtfs, err := ParseDictFile(dictFile)
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
func load_model(f_name string) error {
|
func load_model(f_name string) error {
|
||||||
file, openError := os.Open(f_name)
|
file, openError := os.Open(f_name)
|
||||||
if openError != nil {
|
if openError != nil {
|
||||||
|
|||||||
20
trie.go
20
trie.go
@@ -96,13 +96,7 @@ func newTrie(dictFileName string) (*Trie, error) {
|
|||||||
if !isDictCached {
|
if !isDictCached {
|
||||||
trie = &Trie{Total: 0.0, Freq: make(map[string]float64)}
|
trie = &Trie{Total: 0.0, Freq: make(map[string]float64)}
|
||||||
|
|
||||||
dictFile, err := os.Open(dictFilePath)
|
wtfs, err := ParseDictFile(dictFilePath)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer dictFile.Close()
|
|
||||||
|
|
||||||
wtfs, err := ParseDictFile(dictFile)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -147,13 +141,7 @@ func addWord(wtf *WordTagFreq) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func LoadUserDict(dictFilePath string) error {
|
func LoadUserDict(dictFilePath string) error {
|
||||||
dictFile, err := os.Open(dictFilePath)
|
wtfs, err := ParseDictFile(dictFilePath)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer dictFile.Close()
|
|
||||||
|
|
||||||
wtfs, err := ParseDictFile(dictFile)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -163,7 +151,7 @@ func LoadUserDict(dictFilePath string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetDictionary(dict_path string) (err error) {
|
func SetDictionary(dictFileName string) (err error) {
|
||||||
T, err = newTrie(dict_path)
|
T, err = newTrie(dictFileName)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user