パスワードを忘れた? アカウント作成
14004716 journal
人工知能

yasuokaの日記: Unidic2UDと中古和文UniDicによる『源氏物語』の係り受け解析

日記 by yasuoka

思うところあって、UniDic2UD中古和文UniDicで『源氏物語』の係り受け解析を試してみることにした。まずは、最新版のUniDic2UDを、辞書や言語モデルも一緒にインストール。

% pip3 install 'unidic2ud>=1.1.4'
% python3 -m unidic2ud download.unidic wabun
% python3 -m unidic2ud download.udpipe japanese-gsd

インストールできたら、とりあえず「いづれの御時にか、女御、更衣あまたさぶらひたまひけるなかに、いとやむごとなき際にはあらぬが、すぐれて時めきたまふありけり。」を係り受け解析してみよう。

% python3
>>> import unidic2ud
>>> wabun=unidic2ud.load("wabun")
>>> s=wabun("いづれの御時にか、女御、更衣あまたさぶらひたまひけるなかに、いとやむごとなき際にはあらぬが、すぐれて時めきたまふありけり。")
>>> print(s)
# text = いづれの御時にか、女御、更衣あまたさぶらひたまひけるなかに、いとやむごとなき際にはあらぬが、すぐれて時めきたまふありけり。
1    いづれ    何れ    PRON    代名詞    _    4    nmod    _    SpaceAfter=No|Translit=イヅレ
2    の    の    ADP    助詞-格助詞    _    1    case    _    SpaceAfter=No|Translit=ノ
3    御    御    NOUN    接頭辞    _    4    compound    _    SpaceAfter=No|Translit=オオン
4    時    時    NOUN    名詞-普通名詞-副詞可能    _    23    obl    _    SpaceAfter=No|Translit=トキ
5    に    に    ADP    助詞-格助詞    _    4    case    _    SpaceAfter=No|Translit=ニ
6    か    か    ADP    助詞-係助詞    _    4    case    _    SpaceAfter=No|Translit=カ
7    、    、    PUNCT    補助記号-読点    _    4    punct    _    SpaceAfter=No
8    女御    女御    NOUN    名詞-普通名詞-一般    _    13    obl    _    SpaceAfter=No|Translit=ニョウゴ
9    、    、    PUNCT    補助記号-読点    _    8    punct    _    SpaceAfter=No
10    更衣    更衣    NOUN    名詞-普通名詞-サ変可能    _    11    compound    _    SpaceAfter=No|Translit=コウイ
11    あまた    数多    NOUN    名詞-普通名詞-一般    _    12    obl    _    SpaceAfter=No|Translit=アマタ
12    さぶらひ    侍う    VERB    動詞-一般    _    13    advcl    _    SpaceAfter=No|Translit=サブラヒ
13    たまひ    給う    VERB    動詞-非自立可能    _    15    acl    _    SpaceAfter=No|Translit=タマヒ
14    ける    けり    AUX    助動詞    _    13    aux    _    SpaceAfter=No|Translit=ケル
15    なか    中    NOUN    名詞-普通名詞-副詞可能    _    23    iobj    _    SpaceAfter=No|Translit=ナカ
16    に    に    ADP    助詞-格助詞    _    15    case    _    SpaceAfter=No|Translit=ニ
17    、    、    PUNCT    補助記号-読点    _    15    punct    _    SpaceAfter=No
18    いと    いと    ADV    副詞    _    23    advmod    _    SpaceAfter=No|Translit=イト
19    やむごとなき    やんごとない    ADJ    形容詞-一般    _    20    amod    _    SpaceAfter=No|Translit=ヤムゴトナキ
20    際    際    NOUN    名詞-普通名詞-一般    _    23    iobj    _    SpaceAfter=No|Translit=キワ
21    に    に    ADP    助詞-格助詞    _    20    case    _    SpaceAfter=No|Translit=ニ
22    は    は    ADP    助詞-係助詞    _    20    case    _    SpaceAfter=No|Translit=ハ
23    あら    有る    VERB    動詞-非自立可能    _    32    advcl    _    SpaceAfter=No|Translit=アラ
24    ぬ    ず    AUX    助動詞    _    23    aux    _    SpaceAfter=No|Translit=ヌ
25    が    が    ADP    助詞-格助詞    _    23    case    _    SpaceAfter=No|Translit=ガ
26    、    、    PUNCT    補助記号-読点    _    23    punct    _    SpaceAfter=No
27    すぐれ    優れる    VERB    動詞-一般    _    32    advcl    _    SpaceAfter=No|Translit=スグレ
28    て    て    SCONJ    助詞-接続助詞    _    27    mark    _    SpaceAfter=No|Translit=テ
29    時    時    NOUN    名詞-普通名詞-副詞可能    _    32    obl    _    SpaceAfter=No|Translit=トキ
30    めき    めく    PART    接尾辞-動詞的    _    29    mark    _    SpaceAfter=No|Translit=メキ
31    たまふ    給う    VERB    動詞-非自立可能    _    32    advcl    _    SpaceAfter=No|Translit=タマフ
32    あり    有る    VERB    動詞-非自立可能    _    0    root    _    SpaceAfter=No|Translit=アリ
33    けり    けり    AUX    助動詞    _    32    aux    _    SpaceAfter=No|Translit=ケリ
34    。    。    PUNCT    補助記号-句点    _    32    punct    _    SpaceAfter=No

うーん、形態素解析(単語切り・品詞付与・活用形の正規化)は、ちゃんと出来てるのだけど、係り受け解析がイマイチだ。私(安岡孝一)なりにざっと直してみよう。

>>> s[4].head=32
>>> s[8].head,s[8].deprel=12,"nsubj"
>>> s[10].head,s[10].deprel=8,"conj"
>>> s[15].head,s[15].deprel=32,"obl"
>>> s[18].head=19
>>> s[20].deprel="nsubj"
>>> s[23].head=31
>>> s[25].deprel="mark"
>>> s[27].head=31
>>> s[29].head=31
>>> s[31].deprel="csubj"
>>> print(s)
1    いづれ    何れ    PRON    代名詞    _    4    nmod    _    SpaceAfter=No|Translit=イヅレ
2    の    の    ADP    助詞-格助詞    _    1    case    _    SpaceAfter=No|Translit=ノ
3    御    御    NOUN    接頭辞    _    4    compound    _    SpaceAfter=No|Translit=オオン
4    時    時    NOUN    名詞-普通名詞-副詞可能    _    32    obl    _    SpaceAfter=No|Translit=トキ
5    に    に    ADP    助詞-格助詞    _    4    case    _    SpaceAfter=No|Translit=ニ
6    か    か    ADP    助詞-係助詞    _    4    case    _    SpaceAfter=No|Translit=カ
7    、    、    PUNCT    補助記号-読点    _    4    punct    _    SpaceAfter=No
8    女御    女御    NOUN    名詞-普通名詞-一般    _    12    nsubj    _    SpaceAfter=No|Translit=ニョウゴ
9    、    、    PUNCT    補助記号-読点    _    8    punct    _    SpaceAfter=No
10    更衣    更衣    NOUN    名詞-普通名詞-サ変可能    _    8    conj    _    SpaceAfter=No|Translit=コウイ
11    あまた    数多    NOUN    名詞-普通名詞-一般    _    12    obl    _    SpaceAfter=No|Translit=アマタ
12    さぶらひ    侍う    VERB    動詞-一般    _    13    advcl    _    SpaceAfter=No|Translit=サブラヒ
13    たまひ    給う    VERB    動詞-非自立可能    _    15    acl    _    SpaceAfter=No|Translit=タマヒ
14    ける    けり    AUX    助動詞    _    13    aux    _    SpaceAfter=No|Translit=ケル
15    なか    中    NOUN    名詞-普通名詞-副詞可能    _    32    obl    _    SpaceAfter=No|Translit=ナカ
16    に    に    ADP    助詞-格助詞    _    15    case    _    SpaceAfter=No|Translit=ニ
17    、    、    PUNCT    補助記号-読点    _    15    punct    _    SpaceAfter=No
18    いと    いと    ADV    副詞    _    19    advmod    _    SpaceAfter=No|Translit=イト
19    やむごとなき    やんごとない    ADJ    形容詞-一般    _    20    amod    _    SpaceAfter=No|Translit=ヤムゴトナキ
20    際    際    NOUN    名詞-普通名詞-一般    _    23    nsubj    _    SpaceAfter=No|Translit=キワ
21    に    に    ADP    助詞-格助詞    _    20    case    _    SpaceAfter=No|Translit=ニ
22    は    は    ADP    助詞-係助詞    _    20    case    _    SpaceAfter=No|Translit=ハ
23    あら    有る    VERB    動詞-非自立可能    _    31    advcl    _    SpaceAfter=No|Translit=アラ
24    ぬ    ず    AUX    助動詞    _    23    aux    _    SpaceAfter=No|Translit=ヌ
25    が    が    ADP    助詞-格助詞    _    23    mark    _    SpaceAfter=No|Translit=ガ
26    、    、    PUNCT    補助記号-読点    _    23    punct    _    SpaceAfter=No
27    すぐれ    優れる    VERB    動詞-一般    _    31    advcl    _    SpaceAfter=No|Translit=スグレ
28    て    て    SCONJ    助詞-接続助詞    _    27    mark    _    SpaceAfter=No|Translit=テ
29    時    時    NOUN    名詞-普通名詞-副詞可能    _    31    obl    _    SpaceAfter=No|Translit=トキ
30    めき    めく    PART    接尾辞-動詞的    _    29    mark    _    SpaceAfter=No|Translit=メキ
31    たまふ    給う    VERB    動詞-非自立可能    _    32    csubj    _    SpaceAfter=No|Translit=タマフ
32    あり    有る    VERB    動詞-非自立可能    _    0    root    _    SpaceAfter=No|Translit=アリ
33    けり    けり    AUX    助動詞    _    32    aux    _    SpaceAfter=No|Translit=ケリ
34    。    。    PUNCT    補助記号-句点    _    32    punct    _    SpaceAfter=No

11ヶ所も手で直したのだが、まあ、これなら納得が行く。この結果を見る限り、japanese-gsdを中古和文の係り受け解析に使うのは、やはり多少無理があって、もう少しチューニングなり何なり、研究の余地があるということだ。ちなみに、最新版のUniDic2UDでは

>>> f=open("trial.svg","w")
>>> f.write(s.to_svg())
>>> f.close()

でSVGを出力できるように改良したので、ぜひSVGによる可視化を楽しんでほしい。

この議論は、yasuoka (21275)によって「 ログインユーザだけ」として作成されている。 ログインしてから来てね。
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...