パスワードを忘れた? アカウント作成
14150852 journal
マイクロソフト

yasuokaの日記: UD-Kanbun・spacy-stanza・spacy-udpipeをCygwin64で使うには

日記 by yasuoka

一昨昨日一昨日の日記で紹介したUD-Kanbunspacy-stanzaspacy-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-develpython37-pippython37-cythonpython37-numpygcc-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にしたい場合は、私(安岡孝一)の一昨日の日記を参考にしてほしい。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...