go-ego/gse

Go efficient multilingual NLP and text segmentation; support English, Chinese, Japanese and others.

解決的問題

gse 是一個高效率的多語言文字切分與自然語言處理(NLP)Go 庫。它解決了在中文、日文等語言中,詞語之間沒有空格分隔的連續文字,如何有效切分成有意義的詞或標記,以供後續分析、搜尋索引與自然語言處理使用之問題。

工作原理

該庫實作了 jieba 算法的 Go 版本,並擴展了額外的 NLP 功能。它使用 雙陣列 Trie 進行高效的詞典查詢,並支援多種切分模式:

  • 最短路徑/DAG:利用詞頻與動態規劃,尋找最佳切分方案。
  • HMM(隱馬可夫模型):使用維特比演算法進行切分,特別適用於識別詞典中未收錄的新詞。

支援多種模式,包括一般、搜尋引擎、全模式與精確模式,並支援自訂使用者詞典與停用詞列表。

適用對象

開發搜尋引擎、文字分析工具,或任何需要多語言文字處理(特別是東亞語言)的 Go 應用程式的開發者。

特色亮點

  • 多語言支援:支援英文、中文(簡體與繁體)、日文。
  • 多種切分模式:提供精確、全模式、搜尋引擎模式以及基於 HMM 的切分。
  • 整合能力:與 Elasticsearch、Bleve 和 ZincSearch 相容。
  • NLP 功能:包含詞性標記(POS)與命名實體識別(開發中)。
  • 高效率:經過優化,支援並行處理,利用 goroutine 提升效能。

相關

  • 專案
  • 專案
  • 專案
  • 專案