An Emacs lisp wrapper for the MeCab morphological analyzer for Japanese text.
- Emacs
- > 25, this package takes advantage of Emacs Dynamic Modules
so Emacs is required to be built with
-with-modulesoption at configuration time. Also, this package is tested only on Emacs 27.0.60. - MeCab
- You can install MeCab on Ubuntu as follows.
sudo apt-get update && \ sudo apt install libmecab-dev mecab mecab-ipadic-utf8 - cmake
- > 3.10.0
mkdir build
cd build
cmake ..
cmake --build .Then run Emacs:
EMACSLOADPATH="$EMACSLOADPATH:.:./build" cask emacs(require 'mecab)
(setq sentence "なんだって円錐の立方積なんぞを計算し出したのだ")
(let* ((tagger (mecab-create-tagger ""))
(node (mecab-parse-to-node tagger sentence)))
(while node
(let ((surface (mecab-node-ref node surface))
(feature (mecab-node-ref node feature)))
(message (format "%s: %s" surface feature))
(setq node (mecab-next-node node)))))
;; => BOS/EOS,*,*,*,*,*,*,*,*
;; なん 名詞,代名詞,一般,*,*,*,なん,ナン,ナン
;; だって 助詞,副助詞,*,*,*,*,だって,ダッテ,ダッテ
;; 円錐 名詞,一般,*,*,*,*,円錐,エンスイ,エンスイ
;; の 助詞,連体化,*,*,*,*,の,ノ,ノ
;; ...mecab-enhanced.el includes utilty functions.
(require 'mecab-enhanced)
(let* ((sentence "なんだって円錐の立方積なんぞを計算し出したのだ")
(iter (mecab-enhanced-parse-to-iter sentence)))
(cl-loop for x iter-by iter
collect (list (oref x surface) (oref x pos))))
;; => (("" "BOS/EOS") ("なん" "名詞") ("だって" "助詞")
;; ("円錐" "名詞") ("の" "助詞") ("立方" "名詞")
;;v ("積" "名詞") ("なんぞ" "助詞") ("を" "助詞")
;; ("計算" "名詞") ("し" "動詞") ("出し" "動詞") ...)cd build
./test_mecabel
cd ..
EMACSLOADPATH="$EMACSLOADPATH:.:./build" cask exec ert-runnerMIT