MCPcopy Index your code
hub / github.com/atilika/kuromoji

github.com/atilika/kuromoji @0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.9.0 ↗ · + Follow
950 symbols 3,244 edges 115 files 219 documented · 23% 4 cross-repo links updated 3y ago★ 1,04826 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

README Build Status

Building

In order to build Kuromoji from source, please run the following command:

    $ mvn clean package

This will download all source dictionary data and build Kuromoji with all dictionaries. The following Kuromoji jars will then be available:

kuromoji-core/target/kuromoji-core-0.9-SNAPSHOT.jar
kuromoji-ipadic/target/kuromoji-ipadic-0.9-SNAPSHOT.jar
kuromoji-jumandic/target/kuromoji-jumandic-0.9-SNAPSHOT.jar
kuromoji-naist-jdic/target/kuromoji-naist-jdic-0.9-SNAPSHOT.jar
kuromoji-unidic/target/kuromoji-unidic-0.9-SNAPSHOT.jar
kuromoji-unidic-kanaaccent/target/kuromoji-unidic-kanaaccent-0.9-SNAPSHOT.jar

The following additional build options are available:

  • -DskipCompileDictionary Do not recompile the dictionaries
  • -DskipDownloadDictionary Do not download source dictionaries
  • -DbenchmarkTokenizers Profile each tokenizer during the package phase using content from Japanese Wikipedia
  • -DskipDownloadWikipedia Prevent the compressed version of the Japanese Wikipedia (~765 MB) from being downloaded during profiling, i.e. if it has already been downloaded.

Using Kuromoji

To use Kuromoji, you add kuromoji-core-0.9-SNAPSHOT.jar and your chosen dictionary's jar to your project. For many projects, the IPADIC variant kuromoji-ipadic-0.9-SNAPSHOT.jar should suffice.

The following code example demonstrates how to use the Kuromoji tokenizer:

package com.atilika.kuromoji.example;

import com.atilika.kuromoji.ipadic.Token;
import com.atilika.kuromoji.ipadic.Tokenizer;
import java.util.List;

public class KuromojiExample {
    public static void main(String[] args) {
        Tokenizer tokenizer = new Tokenizer() ;
        List<Token> tokens = tokenizer.tokenize("お寿司が食べたい。");
        for (Token token : tokens) {
            System.out.println(token.getSurface() + "\t" + token.getAllFeatures());
        }
    }
}

When running this program, you will get the following output

お   接頭詞,名詞接続,*,*,*,*,お,オ,オ
寿司  名詞,一般,*,*,*,*,寿司,スシ,スシ
が   助詞,格助詞,一般,*,*,*,が,ガ,ガ
食べ  動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
たい  助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
。   記号,句点,*,*,*,*,。,。,。

Contributing

Please open up issues if you have a feature request. We also welcome contributions through pull requests.

You will retain copyright to your own contributions, but need to license them using the Apache License, Version 2.0. All contributors will be mentioned in the CONTRIBUTORS.md file.

About us

We are a small team of experienced software engineers based in Tokyo who offers technologies and good advice in the field of search, natural language processing and big data analytics.

Please feel free to contact us at kuromoji@atilika.com if you have any questions or need help.

Extension points exported contracts — how you extend this code

Compiler (Interface)
(no doc) [12 implementers]
kuromoji-core/src/main/java/com/atilika/kuromoji/compile/Compiler.java
Dictionary (Interface)
(no doc) [8 implementers]
kuromoji-core/src/main/java/com/atilika/kuromoji/dict/Dictionary.java
TokenFactory (Interface)
(no doc) [5 implementers]
kuromoji-core/src/main/java/com/atilika/kuromoji/viterbi/TokenFactory.java
ResourceResolver (Interface)
An adapter to resolve the required resources into data streams. [2 implementers]
kuromoji-core/src/main/java/com/atilika/kuromoji/util/ResourceResolver.java
KeyMapper (Interface)
Generic interface to map a key to bits @param key type [1 implementers]
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/PatriciaTrie.java

Core symbols most depended-on inside this repo

get
called by 229
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/PatriciaTrie.java
size
called by 143
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/PatriciaTrie.java
add
called by 141
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/Trie.java
isSet
called by 74
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/PatriciaTrie.java
getFeature
called by 71
kuromoji-core/src/main/java/com/atilika/kuromoji/dict/Dictionary.java
put
called by 67
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/PatriciaTrie.java
getChildren
called by 48
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/Trie.java
getKey
called by 40
kuromoji-core/src/main/java/com/atilika/kuromoji/trie/Trie.java

Shape

Method 824
Class 119
Interface 5
Enum 2

Languages

Java100%

Modules by API surface

kuromoji-core/src/main/java/com/atilika/kuromoji/trie/PatriciaTrie.java41 symbols
kuromoji-unidic-kanaaccent/src/main/java/com/atilika/kuromoji/unidic/kanaaccent/compile/DictionaryEntry.java28 symbols
kuromoji-unidic-kanaaccent/src/main/java/com/atilika/kuromoji/unidic/kanaaccent/Token.java28 symbols
kuromoji-unidic-kanaaccent/src/test/java/com/atilika/kuromoji/unidic/kanaaccent/TokenizerTest.java25 symbols
kuromoji-benchmark/src/main/java/com/atilika/kuromoji/benchmark/Benchmark.java24 symbols
kuromoji-core/src/main/java/com/atilika/kuromoji/compile/TokenInfoDictionaryCompilerBase.java22 symbols
kuromoji-core/src/test/java/com/atilika/kuromoji/trie/PatriciaTrieTest.java21 symbols
kuromoji-unidic/src/test/java/com/atilika/kuromoji/unidic/TokenizerTest.java19 symbols
kuromoji-unidic/src/main/java/com/atilika/kuromoji/unidic/compile/DictionaryEntry.java19 symbols
kuromoji-unidic/src/main/java/com/atilika/kuromoji/unidic/Token.java19 symbols
kuromoji-naist-jdic/src/test/java/com/atilika/kuromoji/naist/jdic/TokenizerTest.java19 symbols
kuromoji-core/src/main/java/com/atilika/kuromoji/dict/UserDictionary.java19 symbols

For agents

$ claude mcp add kuromoji \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page