トークナイザをいくつかまとめたもの
- Sudachi:日本語形態素解析器
- Sudachi辞書のバージョンを更新するとそれまでの分割結果と差異がでる可能性があります
- N-gram
- ICU: Unicodeで規定された単語分割器
icu::BreakIterator
のPythonラッパーPyICU
で分割PyICU
のICU辞書とUnicodeの最新バージョンでのICU辞書はバージョンが異なる場合に分割結果に差異があります
pip install git+https://github.com/tkys/multi_tokenize.git
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
print(mt.sudachi(text))
print(mt.n_gram(text,2))
print(mt.icu_jp(text))
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
mt.sudachi(text)
>>> ['東京都', 'に', 'は', '無い', '東京ディズニーランド']
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
mt.n_gram(text,1)
>>> ['東', '京', '都', 'に', 'は', '無', 'い', '東', '京', 'デ', 'ィ', 'ズ', 'ニ', 'ー', 'ラ', 'ン', 'ド']
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
mt.n_gram(text,2)
>>> ['東京', '京都', '都に', 'には', 'は無', '無い', 'い東', '東京', '京デ', 'ディ', 'ィズ', 'ズニ', 'ニー', 'ーラ', 'ラン', 'ンド']
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
mt.n_gram(text,3)
>>> ['東京都', '京都に', '都には', 'には無', 'は無い', '無い東', 'い東京', '東京デ', '京ディ', 'ディズ', 'ィズニ', 'ズニー', 'ニーラ', 'ーラン', 'ランド']
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
mt.icu_jp(text)
>>> ['東京', '都', 'に', 'は', '無い', '東京', 'ディズニーランド']
引数 extra_protected_patterns
で指定したtokenは分割させずに固定されます
import multi_tokenize as mt
text = "東京都には無い東京ディズニーランド"
extra_protected_patterns = ["東京都","東京ディズニーランド"]
mt.icu_jp(text, extra_protected_patterns)
>>> ['東京都', 'に', 'は', '無い', '東京ディズニーランド']