yasuokaの日記: UD-Kanbun・spacy-stanza・spacy-udpipeをmacOS Catalinaで使うには
私(安岡孝一)の昨日の日記の読者から、macOSはダメなのか、という趣旨の御質問をいただいた。macOS Catalinaなら大丈夫だが、ネットワークに繋がった環境下で、ターミナル(「Finder」→「アプリケーション」→「ユーティリティ」の中にある)を立ち上げる必要がある。ターミナルを立ち上げたら、以下のコマンドを順に実行する。
$ g++ --version
$ pip3 install -U udkanbun spacy-stanza spacy-udpipe deplacy --user
$ python3
>>> import stanza
>>> stanza.download("lzh")
>>> import spacy_udpipe
>>> spacy_udpipe.download("lzh")
>>> quit()
実行すると、パスワード入力画面が現れたりして、必要なものをどんどんインストールしてくれるはずである。インストールと古典中国語モデルのダウンロードがうまくいったなら、まずはUD-Kanbunをdeplacyで使ってみよう。
$ python3
>>> 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
>>> 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
>>> 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()
なお、Catalina以外のmaxOSだと、g++やpip3のインストールにXcodeやHomebrewを必要とするので、複数マシンで環境を揃えるのが難しいと思う。macOSのsafariはGoogle Colaboratoryをサポートしている(らしい)ので、よければ3月30日の日記も参照してほしい。
UD-Kanbun・spacy-stanza・spacy-udpipeをmacOS Catalinaで使うには More ログイン