A Japanese morphological analysis command-line interface for Lindera. This project fork from fulmicoton's kuromoji-rs.
% cargo install lindera-cli
The following products are required to build:
text
% make build
The CLI already includes IPADIC as the default Japanese dictionary.
You can easily tokenize the text and see the results as follows:
% echo "関西国際空港限定トートバッグ" | ./bin/lindera
関西国際空港 名詞,固有名詞,組織,*,*,*,関西国際空港,カンサイコクサイクウコウ,カンサイコクサイクーコー
限定 名詞,サ変接続,*,*,*,*,限定,ゲンテイ,ゲンテイ
トートバッグ UNK,*,*,*,*,*,*,*,*
EOS
It is also possible to switch to the pre-built dictionary data instead of the default dictionary and tokenize.
The following example uses the pre-built IPADIC to tokenize:
``` % curl -L -O "https://github.com/lindera-morphology/lindera-ipadic-builder/releases/download/v0.3.2/lindera-ipadic-2.7.0-20070801.tar.bz2"
% tar -xjvf ./lindera-ipadic-2.7.0-20070801.tar.bz2
% echo "関西国際空港限定トートバッグ" | lindera -d ./lindera-ipadic-2.7.0-20070801 関西国際空港 名詞,固有名詞,組織,,,,関西国際空港,カンサイコクサイクウコウ,カンサイコクサイクーコー 限定 名詞,サ変接続,,,,*,限定,ゲンテイ,ゲンテイ トートバッグ UNK EOS ```
The following example uses the pre-built IPADIC-NEologd to tokenize:
``` % curl -L -O "https://github.com/lindera-morphology/lindera-ipadic-neologd-builder/releases/download/v0.1.2/lindera-ipadic-2.7.0-20070801-neologd-20200130.tar.bz2"
% tar -xjvf ./lindera-ipadic-2.7.0-20070801-neologd-20200130.tar.bz2
% echo "関西国際空港限定トートバッグ" | lindera -d ./lindera-ipadic-2.7.0-20070801-neologd-20200130 関西国際空港 名詞,固有名詞,組織,,,,関西国際空港,カンサイコクサイクウコウ,カンサイコクサイクーコー 限定 名詞,サ変接続,,,,,限定,ゲンテイ,ゲンテイ トートバッグ 名詞,固有名詞,一般,,,,トートバッグ,トートバッグ,トートバッグ EOS ```
The following example uses the pre-built UniDic to tokenize:
``` % curl -L -O "https://github.com/lindera-morphology/lindera-unidic-builder/releases/download/v0.3.2/lindera-unidic-2.1.2.tar.bz2"
% tar -xjvf ./lindera-unidic-2.1.2.tar.bz2
% echo "関西国際空港限定トートバッグ" | lindera -d ./lindera-unidic-2.1.2 関西 名詞,固有名詞,地名,一般,,,カンサイ,カンサイ,関西,カンサイ,関西,カンサイ,固,,,, 国際 名詞,普通名詞,一般,,,,コクサイ,国際,国際,コクサイ,国際,コクサイ,漢,,,,* 空港 名詞,普通名詞,一般,,,,クウコウ,空港,空港,クーコー,空港,クーコー,漢,,,,* 限定 名詞,普通名詞,サ変可能,,,,ゲンテイ,限定,限定,ゲンテー,限定,ゲンテー,漢,,,,* トート 名詞,普通名詞,一般,,,,トート,トート,トート,トート,トート,トート,外,,,,* バッグ 名詞,普通名詞,一般,,,,バッグ,バッグ-bag,バッグ,バッグ,バッグ,バッグ,外,,,,* EOS ```
The following example uses the pre-built ko-dic to tokenize:
``` % curl -L -O "https://github.com/lindera-morphology/lindera-ko-dic-builder/releases/download/v0.1.0/lindera-ko-dic-2.1.1-20180720.tar.bz2"
% tar -xjvf ./lindera-ko-dic-2.1.1-20180720.tar.bz2
% echo "하네다공항한정토트백" | lindera -d ./lindera-ko-dic-2.1.1-20180720 하네다 NNP,인명,F,하네다,,,, 공항 NNG,장소,T,공항,,,, 한정 NNG,,T,한정,,,,* 토트백 NNG,,T,토트백,Compound,,,토트/NNP/인명+백/NNG/ EOS ```
Please refer to the following repository for building a dictionary:
Linera provides two tokenization modes: normal
and decompose
.
normal
mode tokenizes faithfully based on words registered in the dictionary. (Default):
% echo "関西国際空港限定トートバッグ" | ./bin/lindera --mode=normal
関西国際空港 名詞,固有名詞,組織,*,*,*,関西国際空港,カンサイコクサイクウコウ,カンサイコクサイクーコー
限定 名詞,サ変接続,*,*,*,*,限定,ゲンテイ,ゲンテイ
トートバッグ UNK,*,*,*,*,*,*,*,*
EOS
decopose
mode tokenizes a compound noun words additionally:
% echo "関西国際空港限定トートバッグ" | ./bin/lindera --mode=decompose
関西 名詞,固有名詞,地域,一般,*,*,関西,カンサイ,カンサイ
国際 名詞,一般,*,*,*,*,国際,コクサイ,コクサイ
空港 名詞,一般,*,*,*,*,空港,クウコウ,クーコー
限定 名詞,サ変接続,*,*,*,*,限定,ゲンテイ,ゲンテイ
トートバッグ UNK,*,*,*,*,*,*,*,*
EOS
Linera provides three output formats: mecab
, wakati
and json
.
mecab
outputs results in a format like MeCab:
% echo "お待ちしております。" | ./bin/lindera --output=mecab
お待ち 名詞,サ変接続,*,*,*,*,お待ち,オマチ,オマチ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
おり 動詞,非自立,*,*,五段・ラ行,連用形,おる,オリ,オリ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。 記号,句点,*,*,*,*,。,。,。
EOS
wakati
outputs the token text separated by spaces:
% echo "お待ちしております。" | ./bin/lindera --output=wakati
お待ち し て おり ます 。
json
outputs the token information in JSON format:
% echo "お待ちしております。" | ./bin/lindera --output=json
[
{
"text": "お待ち",
"detail": [
"名詞",
"サ変接続",
"*",
"*",
"*",
"*",
"お待ち",
"オマチ",
"オマチ"
]
},
{
"text": "し",
"detail": [
"動詞",
"自立",
"*",
"*",
"サ変・スル",
"連用形",
"する",
"シ",
"シ"
]
},
{
"text": "て",
"detail": [
"助詞",
"接続助詞",
"*",
"*",
"*",
"*",
"て",
"テ",
"テ"
]
},
{
"text": "おり",
"detail": [
"動詞",
"非自立",
"*",
"*",
"五段・ラ行",
"連用形",
"おる",
"オリ",
"オリ"
]
},
{
"text": "ます",
"detail": [
"助動詞",
"*",
"*",
"*",
"特殊・マス",
"基本形",
"ます",
"マス",
"マス"
]
},
{
"text": "。",
"detail": [
"記号",
"句点",
"*",
"*",
"*",
"*",
"。",
"。",
"。"
]
}
]