LoginSignup
0
0

富岳のspack0.19版python3.10でjdepp-pythonを動かすには

Posted at

昨日の記事で書いたjdepp-python 0.17の(二文節間)係り受け解析プログラムを、スーパーコンピュータ「富岳」のspack0.19版python3.10に移植してみた。

#! /bin/bash
#PJM -L rscgrp=small
#PJM -L elapse=1:00:00
#PJM -L node=1
#PJM -j
#PJM -S

. /vol0004/apps/oss/spack/share/spack/setup-env.sh
spack load py-cython@0.29.32/wmhf2on
G=`id | sed 's/^.*gid=[0-9]*(\([^)]*\)).*$/\1/'`
set `ls -d /vol*/$G /vol*/data/$G` $HOME
export PYTHONUSERBASE=$1/J.DepP
export TMPDIR=$PYTHONUSERBASE/tmp
mkdir -p $TMPDIR
cd $TMPDIR
pip3 install -U jagger jdepp --user
test -d model/kwdlc || curl -L https://github.com/lighttransport/jagger-python/releases/download/v0.1.0/model_kwdlc.tar.gz | tar xzf -
test -d model/knbc || curl -L https://github.com/lighttransport/jdepp-python/releases/download/v0.1.0/knbc-mecab-jumandic-2ndpoly.tar.gz | tar xzf -

P=$PJM_JOBID.$$.py
cat << 'EOF' > $P
import jagger,jdepp
tagger=jagger.Jagger()
tagger.load_model("model/kwdlc/patterns")
parser=jdepp.Jdepp()
parser.load_model("model/knbc")
nlp=lambda x:parser.parse_from_postagged("\n".join(t.surface()+"\t"+t.feature() for t in tagger.tokenize(x))+"\nEOS\n")
doc=nlp("吾輩はここで始めて人間というものを見た")
print(doc,jdepp.to_tree(str(doc)),sep="\n")
EOF
python3 $P

富岳のログインノードからpjsubしてみたところ、ジョブ待ち・ダウンロード等も含め、15分ほどで以下の結果が得られた。

# S-ID: 1; J.DepP
* 0 6D
吾輩	名詞,普通名詞,*,*,吾輩,わがはい,代表表記:我が輩/わがはい カテゴリ:人
は	助詞,副助詞,*,*,は,は,*
* 1 2D
ここ	指示詞,名詞形態指示詞,*,*,ここ,ここ,*
で	助詞,格助詞,*,*,で,で,*
* 2 6D
始めて	動詞,*,母音動詞,タ系連用テ形,始める,はじめて,*
* 3 4D
人間	名詞,普通名詞,*,*,人間,にんげん,*
と	助詞,格助詞,*,*,と,と,*
* 4 5D
いう	動詞,*,子音動詞ワ行,基本形,いう,いう,*
* 5 6D
もの	名詞,形式名詞,*,*,もの,もの,*
を	助詞,格助詞,*,*,を,を,*
* 6 -1D
見た	動詞,*,母音動詞,タ形,見る,みた,*
EOS

# S-ID: 1; J.DepP
  0:        吾輩は━━┓
  1:     ここで━━┓  ┃
  2:        始めて━━┫
  3:  人間と━━┓     ┃
  4:      いう━━┓  ┃
  5:        ものを━━┫
  6:            見たEOS

jdepp.to_tree()が少しズレていて、EOSが妙なところにくっついているものの、ちゃんと解析できているようだ。ただ、このやり方だと、manylinux2014_aarch64のバイナリをそのまま使ってしまうため、富岳のa64fxがイマイチ生かせていない。さて、どうしたら、もう少し高速になるかな。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0