Files
.emacs.d/lisp/init-segmentation.el

45 lines
1.6 KiB
EmacsLisp

;;; init-segmentation.el --- Chinese word segmentation -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
;; emacs-chinese-word-segmentation
(use-package cns
:straight nil
:hook
(after-init . require-cns)
(after-init . global-cns-mode)
:init
(cond
(*is-windows*
(add-to-list 'load-path "h:/emacs/emacs-chinese-word-segmentation/") ;设置为进程调用方式
(setq cns-process-type 'shell) ;设置可执行文件路径
(setq cns-prog "h:/emacs/emacs-chinese-word-segmentation/cnws.exe") ;设置字典目录
(setq cns-dict-directory "h:/emacs/emacs-chinese-word-segmentation/cppjieba/dict") ;直接设置进程命令,绕过 Windows shell 检测
(setq cns-process-shell-command
(format "%s %s %s %s %s %s"
cns-prog
(concat (file-name-as-directory cns-dict-directory) "jieba.dict.utf8")
(concat (file-name-as-directory cns-dict-directory) "hmm_model.utf8")
(concat (file-name-as-directory cns-dict-directory) "user.dict.utf8")
(concat (file-name-as-directory cns-dict-directory) "idf.utf8")
(concat (file-name-as-directory cns-dict-directory) "stop_words.utf8"))))
(t
(add-to-list 'load-path "~/emacs-stuff/emacs-chinese-word-segmentation/")
(setq cns-process-type 'shell)
(setq cns-prog "~/emacs-stuff/emacs-chinese-word-segmentation/cnws")
(setq cns-dict-directory "~/emacs-stuff/emacs-chinese-word-segmentation/cppjieba/dict/")))
:config
(defun require-cns ()
(require 'cns nil t))
(setq cns-recent-segmentation-limit 40)
(define-key cns-mode-map (kbd "C-<backspace>") nil))
(provide 'init-segmentation)
;;; init-segmentation.el ends here