yasuokaの日記: UD-Kanbun・spacy-stanza・spacy-udpipeをCygwin64で使うには
一昨昨日と一昨日の日記で紹介したUD-Kanbunとspacy-stanzaとspacy-udpipeを、Cygwin(64bit版)で使ってみたいとの御依頼をいただいた。もちろん使えるのだが、Stanzaに必要なCygTorchのダウンロードが88MB、Stanzaの古典中国語モデルが135MBと、いずれもそこそこデカイので、ネットワーク環境の太いところでインストールしないと苦しい。
まずは、Cygwin(64bit版)のインストール。公式サイトから「setup-x86_64.exe」をダウンロードして実行する。あとは基本的に「次へ」で進めていけばいいが、「Choose A Download Site」の画面にきたら、どこか日本(jp)のhttpサイトを選ぶ必要がある。次の「Select Packages」の画面では、Viewのところを「Full」にして、python37-develとpython37-pipとpython37-cythonとpython37-numpyとgcc-g++を追加インストール(「Skip」の代わりに最新のバージョン番号を選ぶ)する必要がある。よく似た名前のパッケージがあるので、注意が必要だ。その後は、また「次へ」を順に押していくと、最後に「完了」ボタンを押して、Cygwin64のインストールはOKだ。
ここまでがうまく行けば、デスクトップに「Cygwin64 Terminal」が出来ているので、それを起動して、ターミナルコンソール上で、以下のコマンドを順に実行する。なお、ターミナルコンソールへのコピペは、Ctrl-VではなくShift-Insなので注意されたい。
$ pip3.7 install spacy --no-build-isolation
$ pip3.7 install torch -f https://github.com/KoichiYasuoka/CygTorch
$ pip3.7 install -U udkanbun spacy-stanza spacy-udpipe deplacy
$ python3.7
>>> import stanza
>>> stanza.download("lzh")
>>> import spacy_udpipe
>>> spacy_udpipe.download("lzh")
>>> quit()
これで、インストールと古典中国語モデルのダウンロードは完了。まずはUD-Kanbunを使ってみよう。
$ python3.7
>>> import udkanbun.spacy
>>> lzh=udkanbun.spacy.load(Danku=True)
>>> doc=lzh("不入虎穴不得虎子")
>>> import deplacy
>>> deplacy.render(doc)
不 ADV <╗ advmod
入 VERB ═╩═╗ ROOT
虎 NOUN <╗ ║ nmod
穴 NOUN ═╝<╝ obj
不 ADV <╗ advmod
得 VERB ═╩═╗ ROOT
虎 NOUN <╗ ║ nmod
子 NOUN ═╝<╝ obj
>>> quit()
次にspacy-stanzaを使ってみよう。
$ python3.7
>>> import stanza
>>> from spacy_stanza import StanzaLanguage
>>> lzh=StanzaLanguage(stanza.Pipeline("lzh"))
>>> doc=lzh("不入虎穴不得虎子")
>>> import deplacy
>>> deplacy.render(doc)
不 ADV <╗ advmod
入 VERB ═╩═╗ root
虎 NOUN ═╗<╝ obj
穴 NOUN <╝ conj
不 ADV <╗ advmod
得 VERB ═╩═╗ root
虎 NOUN ═╗<╝ obj
子 NOUN <╝ conj
>>> quit()
次にspacy-udpipeを使ってみよう。
$ python3.7
>>> import spacy_udpipe
>>> lzh=spacy_udpipe.load("lzh")
>>> doc=lzh("不入虎穴不得虎子")
>>> import deplacy
>>> deplacy.render(doc)
不 ADV <╗ advmod
入 VERB ═╝ ROOT
虎 NOUN ═╗<╗ nsubj
穴 NOUN <╝ ║ conj
不 ADV <╗ ║ advmod
得 AUX ═╝<╣ aux
虎 NOUN ═╦═╝ ROOT
子 NOUN <╝ flat
>>> quit()
なお、自動文切り機能をOFFにしたい場合は、私(安岡孝一)の一昨日の日記を参考にしてほしい。
UD-Kanbun・spacy-stanza・spacy-udpipeをCygwin64で使うには More ログイン