jieba

中国語の形態素解析ツールで一番実用的なものは?
https://jp.quora.com/%e4%b8%ad%e5%9b%bd%e8%aa%9e%e3%81%ae%e5%bd%a2%e6%85%8b%e7%b4%a0%e8%a7%a3%e6%9e%90%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7%e4%b8%80%e7%95%aa%e5%ae%9f%e7%94%a8%e7%9a%84%e3%81%aa%e3%82%82%e3%81%ae%e3%81%af


fxsjy/jieba
https://github.com/fxsjy/jieba


中国語形態素解析エンジンのjiebaを使ってみる
https://qiita.com/gao_gao/items/61f694ba941b1173f2e9



インストールしてみた。

$ sudo python3 -m pip install jieba


wikipedia:胡蝶の夢の最初の文を解析してみる。
原文:昔者莊周夢爲胡蝶。
書き下し文:昔者荘周夢に胡蝶と為る。

$ python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import jieba
>>> list(jieba.cut("昔者莊周夢爲胡蝶。"))
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 1.002 seconds.
Prefix dict has been built successfully.
['昔者', '莊周', '夢', '爲', '胡蝶', '。']
>>> 

おぉ!
僕は中国語の文法知識はほとんど持っていないけど、いい感じにみえる。


wikipedia:魏志倭人伝邪馬台国までの国と行程の部分を解析してみる。

>>> list(jieba.cut("倭人在帶方東南大海之中、依山㠀爲國邑。舊百餘國、漢時有朝見者。今使譯所通三十國。"))
['倭人', '在', '帶方', '東南', '大海', '之中', '、', '依山', '㠀', '爲', '國邑', '。', '舊百餘國', '、', '漢時', '有', '朝見者', '。', '今使', '譯所通', '三十', '國', '。']
>>> list(jieba.cut("從郡至倭、循海岸水行、歷韓國、乍南乍東、到其北岸狗邪韓國、七千餘里。"))
['從', '郡', '至', '倭', '、', '循', '海岸', '水行', '、', '歷韓國', '、', '乍', '南乍東', '、', '到', '其', '北岸', '狗', '邪', '韓國', '、', '七千', '餘里', '。']
>>> list(jieba.cut("始度一海千餘里、至對馬國、其大官曰卑狗、副曰卑奴母離、所居絶㠀、方可四百餘里。土地山險、多深林、道路如禽鹿徑。有千餘戸。無良田、食海物自活、乗船南北市糴。"))
['始度', '一海千餘里', '、', '至', '對馬國', '、', '其', '大官', '曰', '卑狗', '、', '副', '曰', '卑', '奴母', '離', '、', '所居', '絶', '㠀', '、', '方可', '四百', '餘里', '。', '土地', '山險', '、', '多', '深林', '、', '道路', '如禽', '鹿徑', '。', '有千', '餘', '戸', '。', '無', '良田', '、', '食海物', '自活', '、', '乗', '船', '南北', '市糴', '。']
>>> list(jieba.cut("又南渡一海千餘里、名曰瀚海、至一大國。官亦曰卑狗、副曰卑奴母離。方可三百里。多竹木叢林。有三千許家。差有田地、耕田猶不足食、亦南北市糴。"))
['又', '南渡', '一海千餘里', '、', '名曰', '瀚海', '、', '至', '一大', '國', '。', '官', '亦', '曰', '卑狗', '、', '副', '曰', '卑', '奴母', '離', '。', '方可', '三百里', '。', '多', '竹木', '叢林', '。', '有', '三千', '許家', '。', '差有', '田地', '、', '耕田', '猶', '不足', '食', '、', '亦', '南北', '市糴', '。']
>>> list(jieba.cut("又渡一海千餘里、至末廬國。有四千餘戸、濱山海居。草木茂盛、行不見前人。好捕魚鰒、水無深淺、皆沈没取之。"))
['又', '渡', '一海千餘里', '、', '至末', '廬國', '。', '有', '四千', '餘', '戸', '、', '濱', '山海', '居', '。', '草木', '茂盛', '、', '行不見', '前人', '。', '好', '捕魚', '鰒', '、', '水無深', '淺', '、', '皆', '沈没取', '之', '。']
>>> list(jieba.cut("東南陸行五百里、到伊都國。官曰爾支、副曰泄謨觚・柄渠觚。有千餘戸。丗有王、皆統屬女王國。郡使往來常所駐。"))
['東南', '陸行', '五百里', '、', '到', '伊都國', '。', '官曰爾支', '、', '副', '曰', '泄', '謨', '觚', '・', '柄', '渠', '觚', '。', '有千', '餘', '戸', '。', '丗', '有', '王', '、', '皆', '統屬', '女王', '國', '。', '郡', '使', '往來常', '所', '駐', '。']
>>> list(jieba.cut("東南至奴國百里。官曰兕馬觚、副曰卑奴母離。有二萬餘戸。"))
['東南至', '奴國', '百里', '。', '官', '曰', '兕', '馬', '觚', '、', '副', '曰', '卑', '奴母', '離', '。', '有二萬', '餘', '戸', '。']
>>> list(jieba.cut("東行至不彌國百里。官曰多模、副曰卑奴母離。有千餘家。"))
['東', '行至', '不彌國', '百里', '。', '官', '曰', '多模', '、', '副', '曰', '卑', '奴母', '離', '。', '有千餘家', '。']
>>> list(jieba.cut("南至投馬國、水行二十曰。官曰彌彌、副曰彌彌那利。可五萬餘戸。"))
['南至', '投馬國', '、', '水行', '二十', '曰', '。', '官', '曰', '彌彌', '、', '副', '曰', '彌彌', '那利', '。', '可五萬', '餘', '戸', '。']
>>> list(jieba.cut("南至邪馬壹國、女王之所都、水行十日、陸行一月。 官有伊支馬、次曰彌馬升、次曰彌馬獲支、次曰奴佳鞮。可七萬餘戸。"))
['南至', '邪', '馬', '壹國', '、', '女王', '之', '所', '都', '、', '水行', '十日', '、', '陸行', '一月', '。', ' ', '官有', '伊支', '馬', '、', '次', '曰', '彌馬升', '、', '次', '曰', '彌馬', '獲支', '、', '次', '曰', '奴佳', '鞮', '。', '可七萬', '餘', '戸', '。']
>>> 

「'至末', '廬國'」、「'邪', '馬', '壹國'」←このあたりは辞書の問題なのだろう。
どれくらい正しく分析できてるのかわからないけど、文章を理解する助けになりそう。