Yc98ejtq

Clojure と Sudachi で形態素解析するCreated on 2018-01-06 by woxtu

 Sudachi は Java で実装された新進気鋭の日本語形態素解析器。

環境:

  • Clojure 1.9.0
  • Sudachi 0.1.1-SNAPSHOT

インストール

ライブラリのインストール

Clojure CLI の場合:

;; deps.edn
{:deps
 {com.worksap.nlp/sudachi {:mvn/version "0.1.1-SNAPSHOT"}}

 :mvn/repos
 {"Sonatype" {:url "https://oss.sonatype.org/content/repositories/snapshots"}}}

Leiningen の場合:

;; project.clj
(defproject playground "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}

  :repositories [["Sonatype" "https://oss.sonatype.org/content/repositories/snapshots"]]
  :dependencies [[org.clojure/clojure "1.9.0"]
                 [com.worksap.nlp/sudachi "0.1.1-SNAPSHOT"]])

辞書のダウンロード

dictionary-core.zipdictionary-full.zip を解凍すると system_core.dic が現れるのでカレントディレクトリに置く。

すもももももももものうち

(import [com.worksap.nlp.sudachi DictionaryFactory Tokenizer$SplitMode])

(def dictionary (.create (DictionaryFactory.)))
(def tokenizer (.create dictionary))

(doseq [token (.tokenize tokenizer Tokenizer$SplitMode/A "すもももももももものうち")]
  (println (.surface token) \tab (clojure.string/join \, (.partOfSpeech token))))
すもも    名詞,普通名詞,一般,*,*,*
も      助詞,係助詞,*,*,*,*
もも   名詞,普通名詞,一般,*,*,*
も      助詞,係助詞,*,*,*,*
もも   名詞,普通名詞,一般,*,*,*
の      助詞,格助詞,*,*,*,*
うち   名詞,普通名詞,副詞可能,*,*,*

プラグイン

 そのうち。