/UD-Kundoku

Classical Chinese to Modern Japanese Translator

Primary LanguagePythonMIT LicenseMIT

Current PyPI packages

UD-Kundoku

Classical Chinese to Modern Japanese Translator, working on Universal Dependencies.

Basic usage

>>> import udkundoku
>>> lzh=udkundoku.load()
>>> s=lzh("不入虎穴不得虎子")
>>> t=udkundoku.translate(s)
>>> print(t)
# text = 虎の穴に入らずして虎の子を得ず
1			NOUN	n,名詞,主体,動物	_	3	nmod	_	Gloss=tiger|SpaceAfter=No
2		_	ADP	_	_	1	case	_	SpaceAfter=No
3			NOUN	n,名詞,固定物,地形	Case=Loc	5	obj	_	Gloss=cave|SpaceAfter=No
4		_	ADP	_	_	3	case	_	SpaceAfter=No
5	入ら		VERB	v,動詞,行為,移動	_	0	root	_	Gloss=enter|SpaceAfter=No
6	ずして		AUX	v,副詞,否定,無界	Polarity=Neg	5	advmod	_	Gloss=not|SpaceAfter=No
7			NOUN	n,名詞,主体,動物	_	9	nmod	_	Gloss=tiger|SpaceAfter=No
8		_	ADP	_	_	7	case	_	SpaceAfter=No
9			NOUN	n,名詞,,関係	_	11	obj	_	Gloss=child|SpaceAfter=No
10		_	ADP	_	_	9	case	_	SpaceAfter=No
11			VERB	v,動詞,行為,得失	_	5	parataxis	_	Gloss=get|SpaceAfter=No
12			AUX	v,副詞,否定,無界	Polarity=Neg	11	advmod	_	Gloss=not|SpaceAfter=No

>>> print(t.sentence())
虎の穴に入らずして虎の子を得ず

>>> print(s.to_tree())
 <════╗   advmod
 ═══╗═╝═╗ root
 <╗ ║   ║ nmod
 ═╝<╝   ║ obj
 <════╗ ║ advmod
 ═══╗═╝<parataxis
 <╗ ║     nmod
 ═╝<obj

>>> print(t.to_tree())
 ═╗<nmod(体言による連体修飾語)
 <╝ ║     case(格表示)
 ═╗═╝<obj(目的語)
 <╝   ║   case(格表示)
 ═╗═══╝═╗ root()
  ║     ║
 <╝     ║ advmod(連用修飾語)
 ═╗<╗   ║ nmod(体言による連体修飾語)
 <╝ ║   ║ case(格表示)
 ═╗═╝<╗ ║ obj(目的語)
 <╝   ║ ║ case(格表示)
 ═╗═══╝<parataxis(隣接表現)
 <advmod(連用修飾語)

udkundoku.load() is an alias for udkanbun.load() of UD-Kanbun. udkundoku.translate() is a transcriptive converter from Classical Chinese (under Universal Dependencies of UD-Kanbun) into Modern Japanese (under Universal Dependencies of UniDic2UD). udkundoku.reorder() is called to rearrange Classical Chinese into Japanese word-order inside udkundoku.translate(). to_tree() and to_svg() are borrowed from those of UD-Kanbun.

You can simply use udkundoku on the command line:

echo 不入虎穴不得虎子 | udkundoku -j

HTTP-server usage

python -m udkundoku.server 5000

Try to connect http://127.0.0.1:5000 with your local browser. Input a Classical Chinese sentence there and push 解析-button (at least) three times.

不入虎穴不得虎子

Installation for Linux

Tar-ball is available for Linux, and is installed by default when you use pip:

pip install udkundoku

旧仮名口語UniDic is automatically downloaded for UniDic2UD.

Installation for Cygwin

Make sure to get gcc-g++ python37-pip python37-devel packages, and then:

pip3.7 install udkundoku

Use python3.7 command in Cygwin instead of python.

Installation for Jupyter Notebook (Google Colaboratory)

!pip install udkundoku

Try notebook for Google Colaboratory.

Author

Koichi Yasuoka (安岡孝一)

References