kiwigo est un binding Golang de kiwi (https://github.com/bab2min/Kiwi), un analyseur morphologique coréen développé en cpp.
L’un des principaux atouts de kiwi est la facilité d’enregistrement de dictionnaires utilisateur et sa grande rapidité de traitement.
En Golang, il est possible d’exploiter du code C via cgo. Heureusement, kiwi expose une API C ouverte, ce qui a permis de l’utiliser efficacement.
kiwigo s’efforce d’exposer autant que possible l’interface C de kiwi telle quelle.
Merci pour votre intérêt, et tout est bienvenu : PR, remarques, stars, likes, upvotes, commentaires, peu importe.
Pour finir, voici un exemple de code exécutable.
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 commentaires
Merci pour cette publication ! Je pense que ça pourrait être utilisé dans de nombreux endroits.
Merci de votre intérêt. :)
Enfin un analyseur morphologique en Go aussi !!
C’est exact ! Ce serait bien que plusieurs analyseurs morphologiques puissent être utilisés dans différents contextes. :)