kiwigo es un binding de golang para kiwi (https://github.com/bab2min/Kiwi), un analizador morfológico de coreano hecho en cpp.
Se puede decir que las ventajas de kiwi son el registro sencillo de diccionarios de usuario y el procesamiento de alta velocidad.
En Golang se pueden aprovechar fuentes en C mediante cgo. Afortunadamente, kiwi deja abierta una API en C, así que se pudo aprovechar muy bien.
kiwigo intentó exponer, en la medida de lo posible, la interfaz en C de kiwi tal cual.
Agradezco mucho el interés de todos; PR, sugerencias, stars, likes, upvotes, comentarios, lo que sea, todo es bienvenido.
Por último, comparto un ejemplo de código ejecutable.
package kiwi_test
import (
"fmt"
kiwi "github.com/codingpot/kiwigo"
)
func Example() {
kb := kiwi.NewBuilder("./ModelGenerator", 1 /*=numThread*/, kiwi.KIWI_BUILD_INTEGRATE_ALLOMORPH /*=options*/)
kb.AddWord("코딩냄비", "NNP", 0)
k := kb.Build()
defer k.Close() // don't forget to Close()!
results, _ := k.Analyze("안녕하세요 코딩냄비입니다. 부글부글.", 1 /*=topN*/, kiwi.KIWI_MATCH_ALL)
fmt.Println(results)
// Output:
// [{[{0 NNG 안녕} {2 XSA 하} {4 EP 시} {3 EC 어요} {6 NNP 코딩냄비} {10 VCP 이} {11 EF ᆸ니다} {13 SF .} {15 NNP 부글부} {18 NNG 글} {19 SF .}] -69.74997}]
}
4 comentarios
¡Gracias por publicarlo! Creo que podría usarse en muchos lugares.
Gracias por tu interés. :)
¡Por fin también hay un analizador morfológico para Go!
¡Así es! Sería genial que varios analizadores morfológicos pudieran usarse en distintos lugares. :)