青空文庫ModernBERTモデルと係り受け解析モデルの製作

昨日の[人文科学とコンピュータ](https://www.jinmoncom.jp/?CH137)でも話したとおり、現時点で青空文庫ModernBERTは、以下の6つがリリースにこぎつけている。

![青空文庫ModernBERT.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428317/2df93b7f-8654-1054-72a9-b1e2ebb5b459.jpeg)

国語研長単位UDによる係り受け解析という視点から見た場合、これら6つのモデルのうちいちばん精度が高いのは、🄻 [modernbert-large-japanese-wikipedia](https://huggingface.co/KoichiYasuoka/modernbert-large-japanese-wikipedia)である。上三角行列アルゴリズムによる係り受け解析モデルの精度を比較してみよう。Google Colaboratory (GPU版)だと、こんな感じ。

```
!pip install transformers triton
models=[
  "KoichiYasuoka/modernbert-small-japanese-aozora-ud-triangular",
  "KoichiYasuoka/modernbert-base-japanese-aozora-ud-triangular",
  "KoichiYasuoka/modernbert-large-japanese-aozora-ud-triangular",
  "KoichiYasuoka/modernbert-small-japanese-wikipedia-ud-triangular",
  "KoichiYasuoka/modernbert-base-japanese-wikipedia-ud-triangular",
  "KoichiYasuoka/modernbert-large-japanese-wikipedia-ud-triangular"
]
import os,sys,subprocess
url="https://github.com/UniversalDependencies/UD_Japanese-GSDLUW"
f=os.path.join(os.path.basename(url),"ja_gsdluw-ud-test.conllu")
os.system(f"test -f {f} || git clone --depth=1 {url}")
url="https://universaldependencies.org/conll18/conll18_ud_eval.py"
c=os.path.basename(url)
os.system(f"test -f {c} || curl -LO {url}")
with open(f,"r",encoding="utf-8") as r:
  s=[t[8:].strip() for t in r if t.startswith("# text =")]
for mdl in models:
  from transformers import pipeline
  nlp=pipeline("universal-dependencies",mdl,trust_remote_code=True,
    aggregation_strategy="simple",device=0)
  with open("result.conllu","w",encoding="utf-8") as w:
    for t in s:
      w.write(nlp(t))
  p=subprocess.run([sys.executable,c,"-v",f,"result.conllu"],
    encoding="utf-8",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
  os.system(f"mkdir -p result/{mdl}")
  with open(f"result/{mdl}/result.txt","w",encoding="utf-8") as w:
    print(f"\n*** {mdl}",p.stdout,sep="\n",file=w)
!( cd result && cat `find {" ".join(models)} -name result.txt` )
```

私(安岡孝一)の手元では、以下の結果が出力された。

```
*** KoichiYasuoka/modernbert-small-japanese-aozora-ud-triangular
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     96.60 |     96.55 |     96.58 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     96.60 |     96.55 |     96.58 |
UPOS       |     92.40 |     92.35 |     92.37 |     95.65
XPOS       |      0.00 |      0.00 |      0.00 |      0.00
UFeats     |     96.56 |     96.51 |     96.54 |     99.96
AllTags    |      0.00 |      0.00 |      0.00 |      0.00
Lemmas     |      0.00 |      0.00 |      0.00 |      0.00
UAS        |     85.74 |     85.69 |     85.72 |     88.76
LAS        |     83.66 |     83.61 |     83.64 |     86.60
CLAS       |     74.31 |     74.06 |     74.18 |     78.02
MLAS       |     68.58 |     68.35 |     68.46 |     72.00
BLEX       |      0.00 |      0.00 |      0.00 |      0.00

*** KoichiYasuoka/modernbert-base-japanese-aozora-ud-triangular
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     97.11 |     97.28 |     97.19 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     97.11 |     97.28 |     97.19 |
UPOS       |     94.46 |     94.62 |     94.54 |     97.27
XPOS       |      0.00 |      0.00 |      0.00 |      0.00
UFeats     |     97.09 |     97.26 |     97.17 |     99.98
AllTags    |      0.00 |      0.00 |      0.00 |      0.00
Lemmas     |      0.00 |      0.00 |      0.00 |      0.00
UAS        |     87.56 |     87.71 |     87.63 |     90.16
LAS        |     86.12 |     86.27 |     86.19 |     88.68
CLAS       |     77.98 |     78.34 |     78.16 |     81.70
MLAS       |     74.14 |     74.48 |     74.31 |     77.67
BLEX       |      0.00 |      0.00 |      0.00 |      0.00

*** KoichiYasuoka/modernbert-large-japanese-aozora-ud-triangular
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     96.89 |     97.15 |     97.02 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     96.89 |     97.15 |     97.02 |
UPOS       |     94.48 |     94.74 |     94.61 |     97.51
XPOS       |      0.00 |      0.00 |      0.00 |      0.00
UFeats     |     96.88 |     97.14 |     97.01 |     99.99
AllTags    |      0.00 |      0.00 |      0.00 |      0.00
Lemmas     |      0.00 |      0.00 |      0.00 |      0.00
UAS        |     87.34 |     87.57 |     87.45 |     90.14
LAS        |     86.02 |     86.25 |     86.13 |     88.78
CLAS       |     77.16 |     77.71 |     77.43 |     81.33
MLAS       |     73.46 |     73.97 |     73.71 |     77.43
BLEX       |      0.00 |      0.00 |      0.00 |      0.00

*** KoichiYasuoka/modernbert-small-japanese-wikipedia-ud-triangular
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     97.55 |     97.71 |     97.63 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     97.55 |     97.71 |     97.63 |
UPOS       |     95.16 |     95.31 |     95.23 |     97.55
XPOS       |      0.00 |      0.00 |      0.00 |      0.00
UFeats     |     97.53 |     97.69 |     97.61 |     99.98
AllTags    |      0.00 |      0.00 |      0.00 |      0.00
Lemmas     |      0.00 |      0.00 |      0.00 |      0.00
UAS        |     88.76 |     88.90 |     88.83 |     90.99
LAS        |     87.24 |     87.38 |     87.31 |     89.43
CLAS       |     79.34 |     79.62 |     79.48 |     82.41
MLAS       |     75.66 |     75.93 |     75.79 |     78.59
BLEX       |      0.00 |      0.00 |      0.00 |      0.00

*** KoichiYasuoka/modernbert-base-japanese-wikipedia-ud-triangular
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     97.67 |     97.88 |     97.78 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     97.67 |     97.88 |     97.78 |
UPOS       |     96.00 |     96.20 |     96.10 |     98.29
XPOS       |      0.00 |      0.00 |      0.00 |      0.00
UFeats     |     97.67 |     97.88 |     97.78 |    100.00
AllTags    |      0.00 |      0.00 |      0.00 |      0.00
Lemmas     |      0.00 |      0.00 |      0.00 |      0.00
UAS        |     89.93 |     90.12 |     90.03 |     92.07
LAS        |     88.82 |     89.01 |     88.92 |     90.94
CLAS       |     81.57 |     82.06 |     81.81 |     84.79
MLAS       |     78.54 |     79.00 |     78.77 |     81.64
BLEX       |      0.00 |      0.00 |      0.00 |      0.00

*** KoichiYasuoka/modernbert-large-japanese-wikipedia-ud-triangular
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     98.22 |     98.27 |     98.25 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     98.22 |     98.27 |     98.25 |
UPOS       |     96.92 |     96.98 |     96.95 |     98.68
XPOS       |      0.00 |      0.00 |      0.00 |      0.00
UFeats     |     98.21 |     98.26 |     98.24 |     99.99
AllTags    |      0.00 |      0.00 |      0.00 |      0.00
Lemmas     |      0.00 |      0.00 |      0.00 |      0.00
UAS        |     91.53 |     91.58 |     91.55 |     93.19
LAS        |     90.69 |     90.75 |     90.72 |     92.34
CLAS       |     84.15 |     84.52 |     84.33 |     86.76
MLAS       |     81.76 |     82.12 |     81.94 |     84.31
BLEX       |      0.00 |      0.00 |      0.00 |      0.00
```

UPOS/LAS/MLASを表の形にしてみよう。

| |青空文庫モデル| |+Wikipediaモデル|
|-|:-:|-|:-:|
|Ⓢ|92.37/83.64/68.46|🅂|95.23/87.31/75.79|
|Ⓑ|94.54/86.19/74.31|🄱|96.10/88.92/78.77|
|Ⓛ|94.61/86.13/73.71|🄻|96.95/90.72/81.94|

ちなみに、ja_gsdluw-ud-test.conlluでいちばん長い文は「一方、東海地方北陸地方以東の東日本は、比較的広い沖積平野に恵まれていた上に、太平洋側を中心に低開発状態の洪積台地や河岸段丘面の農地開発の余地が大きく、日本海側を中心に扇状地でも開発の余地が広く存在したため、江戸時代に至っても、急峻な山地の傾斜面を切り開いて棚田をつくるまでに至らなかったところが多く、棚田はあまりつくられないか、つくられた場合でも畔や土手は傾斜が緩やかな土盛りとなり、西日本とは対照的な棚田風景となった。」だが、`goeswith`による単語組み上げだと126×126の上三角行列に乗りきらず、解析が崩壊してしまう。Google Colaboratoryで試してみよう。

```
!pip install transformers triton deplacy
from transformers import pipeline
nlp=pipeline("universal-dependencies","KoichiYasuoka/modernbert-large-japanese-wikipedia-ud-triangular",trust_remote_code=True)
doc=nlp("一方、東海地方北陸地方以東の東日本は、比較的広い沖積平野に恵まれていた上に、太平洋側を中心に低開発状態の洪積台地や河岸段丘面の農地開発の余地が大きく、日本海側を中心に扇状地でも開発の余地が広く存在したため、江戸時代に至っても、急峻な山地の傾斜面を切り開いて棚田をつくるまでに至らなかったところが多く、棚田はあまりつくられないか、つくられた場合でも畔や土手は傾斜が緩やかな土盛りとなり、西日本とは対照的な棚田風景となった。")
import deplacy
deplacy.serve(doc,port=None)
```

私の手元では、以下の結果が出力された。

```
# text = 一方、東海地方北陸地方以東の東日本は、比較的広い沖積平野に恵まれていた上に、太平洋側を中心に低開発状態の洪積台地や河岸段丘面の農地開発の余地が大きく、日本海側を中心に扇状地でも開発の余地が広く存在したため、江戸時代に至っても、急峻な山地の傾斜面を切り開いて棚田をつくるまでに至らなかったところが多く、棚田はあまりつくられないか、つくられた場合でも畔や土手は傾斜が緩やかな土盛りとなり、西日本とは対照的な棚田風景となった。
1	一	_	CCONJ	_	_	28	cc	_	SpaceAfter=No
2	方	_	X	_	_	1	goeswith	_	SpaceAfter=No
3	、	_	PUNCT	_	_	1	punct	_	SpaceAfter=No
4	東海	_	NOUN	_	_	14	nmod	_	SpaceAfter=No
5	地	_	X	_	_	4	goeswith	_	SpaceAfter=No
6	方	_	X	_	_	4	goeswith	_	SpaceAfter=No
7	北	_	X	_	_	4	goeswith	_	SpaceAfter=No
8	陸	_	X	_	_	4	goeswith	_	SpaceAfter=No
9	地	_	X	_	_	4	goeswith	_	SpaceAfter=No
10	方	_	SYM	_	_	4	compound	_	SpaceAfter=No
11	以	_	NOUN	_	_	91	obl	_	SpaceAfter=No
12	東	_	X	_	_	11	goeswith	_	SpaceAfter=No
13	の	_	ADP	_	_	7	case	_	SpaceAfter=No
14	東	_	PROPN	_	_	28	nsubj	_	SpaceAfter=No
15	日本	_	X	_	_	14	goeswith	_	SpaceAfter=No
16	は	_	ADP	_	_	14	case	_	SpaceAfter=No
17	、	_	PUNCT	_	_	14	punct	_	SpaceAfter=No
18	比	_	ADV	_	_	21	advmod	_	SpaceAfter=No
19	較	_	X	_	_	18	goeswith	_	SpaceAfter=No
20	的	_	X	_	_	18	goeswith	_	SpaceAfter=No
21	広	_	ADJ	_	_	23	acl	_	SpaceAfter=No
22	い	_	X	_	_	21	goeswith	_	SpaceAfter=No
23	沖	_	NOUN	_	_	28	obl	_	SpaceAfter=No
24	積	_	X	_	_	23	goeswith	_	SpaceAfter=No
25	平	_	X	_	_	23	goeswith	_	SpaceAfter=No
26	野	_	X	_	_	23	goeswith	_	SpaceAfter=No
27	に	_	ADP	_	_	23	case	_	SpaceAfter=No
28	恵まれ	_	VERB	_	_	67	advcl	_	SpaceAfter=No
29	て	_	AUX	_	_	28	aux	_	SpaceAfter=No
30	い	_	X	_	_	29	goeswith	_	SpaceAfter=No
31	た	_	AUX	_	_	28	aux	_	SpaceAfter=No
32	上	_	SCONJ	_	_	28	mark	_	SpaceAfter=No
33	に	_	X	_	_	32	goeswith	_	SpaceAfter=No
34	、	_	PUNCT	_	_	28	punct	_	SpaceAfter=No
35	太	_	NOUN	_	_	40	obj	_	SpaceAfter=No
36	平	_	X	_	_	35	goeswith	_	SpaceAfter=No
37	洋	_	X	_	_	35	goeswith	_	SpaceAfter=No
38	側	_	X	_	_	35	goeswith	_	SpaceAfter=No
39	を	_	ADP	_	_	35	case	_	SpaceAfter=No
40	中	_	NOUN	_	_	67	obl	_	SpaceAfter=No
41	心	_	X	_	_	40	goeswith	_	SpaceAfter=No
42	に	_	ADP	_	_	40	case	_	SpaceAfter=No
43	低	_	NOUN	_	_	49	nmod	_	SpaceAfter=No
44	開	_	X	_	_	43	goeswith	_	SpaceAfter=No
45	発	_	X	_	_	43	goeswith	_	SpaceAfter=No
46	状	_	X	_	_	43	goeswith	_	SpaceAfter=No
47	態	_	X	_	_	43	goeswith	_	SpaceAfter=No
48	の	_	ADP	_	_	43	case	_	SpaceAfter=No
49	洪	_	NOUN	_	_	54	nmod	_	SpaceAfter=No
50	積	_	X	_	_	49	goeswith	_	SpaceAfter=No
51	台	_	X	_	_	49	goeswith	_	SpaceAfter=No
52	地	_	X	_	_	49	goeswith	_	SpaceAfter=No
53	や	_	ADP	_	_	49	case	_	SpaceAfter=No
54	河岸	_	NOUN	_	_	59	nmod	_	SpaceAfter=No
55	段	_	X	_	_	54	goeswith	_	SpaceAfter=No
56	丘	_	X	_	_	54	goeswith	_	SpaceAfter=No
57	面	_	X	_	_	54	goeswith	_	SpaceAfter=No
58	の	_	ADP	_	_	54	case	_	SpaceAfter=No
59	農	_	NOUN	_	_	64	nmod	_	SpaceAfter=No
60	地	_	X	_	_	59	goeswith	_	SpaceAfter=No
61	開	_	X	_	_	59	goeswith	_	SpaceAfter=No
62	発	_	X	_	_	59	goeswith	_	SpaceAfter=No
63	の	_	ADP	_	_	59	case	_	SpaceAfter=No
64	余	_	NOUN	_	_	67	nsubj	_	SpaceAfter=No
65	地	_	X	_	_	64	goeswith	_	SpaceAfter=No
66	が	_	ADP	_	_	64	case	_	SpaceAfter=No
67	大	_	ADJ	_	_	91	advcl	_	SpaceAfter=No
68	き	_	X	_	_	67	goeswith	_	SpaceAfter=No
69	く	_	X	_	_	67	goeswith	_	SpaceAfter=No
70	、	_	PUNCT	_	_	67	punct	_	SpaceAfter=No
71	日本	_	NOUN	_	_	75	obj	_	SpaceAfter=No
72	海	_	X	_	_	71	goeswith	_	SpaceAfter=No
73	側	_	X	_	_	71	goeswith	_	SpaceAfter=No
74	を	_	ADP	_	_	71	case	_	SpaceAfter=No
75	中	_	NOUN	_	_	91	obl	_	SpaceAfter=No
76	心	_	X	_	_	75	goeswith	_	SpaceAfter=No
77	に	_	ADP	_	_	75	case	_	SpaceAfter=No
78	扇	_	NOUN	_	_	91	obl	_	SpaceAfter=No
79	状	_	X	_	_	78	goeswith	_	SpaceAfter=No
80	地	_	X	_	_	78	goeswith	_	SpaceAfter=No
81	で	_	ADP	_	_	78	case	_	SpaceAfter=No
82	も	_	ADP	_	_	78	case	_	SpaceAfter=No
83	開	_	NOUN	_	_	86	nmod	_	SpaceAfter=No
84	発	_	X	_	_	83	goeswith	_	SpaceAfter=No
85	の	_	ADP	_	_	83	case	_	SpaceAfter=No
86	余	_	NOUN	_	_	91	nsubj	_	SpaceAfter=No
87	地	_	X	_	_	86	goeswith	_	SpaceAfter=No
88	が	_	ADP	_	_	86	case	_	SpaceAfter=No
89	広	_	ADJ	_	_	91	advcl	_	SpaceAfter=No
90	く	_	X	_	_	89	goeswith	_	SpaceAfter=No
91	存	_	VERB	_	_	95	acl	_	SpaceAfter=No
92	在	_	X	_	_	91	goeswith	_	SpaceAfter=No
93	し	_	X	_	_	91	goeswith	_	SpaceAfter=No
94	た	_	AUX	_	_	91	aux	_	SpaceAfter=No
95	ため	_	NOUN	_	_	115	obl	_	SpaceAfter=No
96	、	_	PUNCT	_	_	95	punct	_	SpaceAfter=No
97	江戸	_	NOUN	_	_	101	obl	_	SpaceAfter=No
98	時	_	X	_	_	97	goeswith	_	SpaceAfter=No
99	代	_	X	_	_	97	goeswith	_	SpaceAfter=No
100	に	_	ADP	_	_	97	case	_	SpaceAfter=No
101	至っ	_	VERB	_	_	125	advcl	_	SpaceAfter=No
102	て	_	SCONJ	_	_	101	mark	_	SpaceAfter=No
103	も	_	ADP	_	_	101	case	_	SpaceAfter=No
104	、	_	PUNCT	_	_	101	punct	_	SpaceAfter=No
105	急	_	ADJ	_	_	108	acl	_	SpaceAfter=No
106	峻	_	X	_	_	105	goeswith	_	SpaceAfter=No
107	な	_	AUX	_	_	105	aux	_	SpaceAfter=No
108	山	_	NOUN	_	_	111	nmod	_	SpaceAfter=No
109	地	_	X	_	_	108	goeswith	_	SpaceAfter=No
110	の	_	ADP	_	_	108	case	_	SpaceAfter=No
111	傾	_	NOUN	_	_	115	obj	_	SpaceAfter=No
112	斜	_	X	_	_	111	goeswith	_	SpaceAfter=No
113	面	_	X	_	_	111	goeswith	_	SpaceAfter=No
114	を	_	ADP	_	_	111	case	_	SpaceAfter=No
115	切り開	_	VERB	_	_	125	advcl	_	SpaceAfter=No
116	い	_	X	_	_	115	goeswith	_	SpaceAfter=No
117	て	_	SCONJ	_	_	115	mark	_	SpaceAfter=No
118	棚	_	NOUN	_	_	121	obj	_	SpaceAfter=No
119	田	_	X	_	_	118	goeswith	_	SpaceAfter=No
120	を	_	ADP	_	_	118	case	_	SpaceAfter=No
121	つくる	_	VERB	_	_	125	advcl	_	SpaceAfter=No
122	ま	_	PART	_	_	121	mark	_	SpaceAfter=No
123	で	_	X	_	_	122	goeswith	_	SpaceAfter=No
124	に	_	ADP	_	_	121	case	_	SpaceAfter=No
125	至ら	_	VERB	_	_	128	acl	_	SpaceAfter=No
126	なかっ	_	AUX	_	Polarity=Neg	125	aux	_	SpaceAfter=No
127	た	_	AUX	_	_	125	aux	_	SpaceAfter=No
128	ところ	_	NOUN	_	_	130	nsubj	_	SpaceAfter=No
129	が	_	ADP	_	_	128	case	_	SpaceAfter=No
130	多	_	ADJ	_	_	139	advcl	_	SpaceAfter=No
131	く	_	X	_	_	130	goeswith	_	SpaceAfter=No
132	、	_	PUNCT	_	_	130	punct	_	SpaceAfter=No
133	棚	_	NOUN	_	_	139	nsubj	_	SpaceAfter=No
134	田	_	X	_	_	133	goeswith	_	SpaceAfter=No
135	は	_	ADP	_	_	133	case	_	SpaceAfter=No
136	あ	_	ADV	_	_	139	advmod	_	SpaceAfter=No
137	ま	_	X	_	_	136	goeswith	_	SpaceAfter=No
138	り	_	X	_	_	136	goeswith	_	SpaceAfter=No
139	つくら	_	VERB	_	_	148	acl	_	SpaceAfter=No
140	れ	_	AUX	_	_	139	aux	_	SpaceAfter=No
141	な	_	AUX	_	Polarity=Neg	139	aux	_	SpaceAfter=No
142	い	_	X	_	_	141	goeswith	_	SpaceAfter=No
143	か	_	PART	_	_	139	mark	_	SpaceAfter=No
144	、	_	PUNCT	_	_	139	punct	_	SpaceAfter=No
145	つくら	_	VERB	_	_	148	acl	_	SpaceAfter=No
146	れ	_	AUX	_	_	145	aux	_	SpaceAfter=No
147	た	_	AUX	_	_	145	aux	_	SpaceAfter=No
148	場	_	NOUN	_	_	167	obl	_	SpaceAfter=No
149	合	_	X	_	_	148	goeswith	_	SpaceAfter=No
150	で	_	ADP	_	_	148	case	_	SpaceAfter=No
151	も	_	ADP	_	_	148	case	_	SpaceAfter=No
152	畔	_	NOUN	_	_	154	nmod	_	SpaceAfter=No
153	や	_	ADP	_	_	152	case	_	SpaceAfter=No
154	土	_	NOUN	_	_	167	nsubj:outer	_	SpaceAfter=No
155	手	_	X	_	_	154	goeswith	_	SpaceAfter=No
156	は	_	ADP	_	_	154	case	_	SpaceAfter=No
157	傾	_	NOUN	_	_	167	nsubj	_	SpaceAfter=No
158	斜	_	X	_	_	157	goeswith	_	SpaceAfter=No
159	が	_	ADP	_	_	157	case	_	SpaceAfter=No
160	緩	_	ADJ	_	_	164	acl	_	SpaceAfter=No
161	や	_	X	_	_	160	goeswith	_	SpaceAfter=No
162	か	_	X	_	_	160	goeswith	_	SpaceAfter=No
163	な	_	AUX	_	_	160	aux	_	SpaceAfter=No
164	土	_	NOUN	_	_	167	obl	_	SpaceAfter=No
165	盛り	_	X	_	_	164	goeswith	_	SpaceAfter=No
166	と	_	ADP	_	_	164	case	_	SpaceAfter=No
167	な	_	VERB	_	_	183	advcl	_	SpaceAfter=No
168	り	_	X	_	_	167	goeswith	_	SpaceAfter=No
169	、	_	PUNCT	_	_	167	punct	_	SpaceAfter=No
170	西	_	PROPN	_	_	183	obl	_	SpaceAfter=No
171	日本	_	X	_	_	170	goeswith	_	SpaceAfter=No
172	と	_	ADP	_	_	170	case	_	SpaceAfter=No
173	は	_	ADP	_	_	170	case	_	SpaceAfter=No
174	対	_	ADJ	_	_	178	acl	_	SpaceAfter=No
175	照	_	X	_	_	174	goeswith	_	SpaceAfter=No
176	的	_	X	_	_	174	goeswith	_	SpaceAfter=No
177	な	_	AUX	_	_	174	aux	_	SpaceAfter=No
178	棚	_	NOUN	_	_	183	obl	_	SpaceAfter=No
179	田	_	X	_	_	178	goeswith	_	SpaceAfter=No
180	風	_	X	_	_	178	goeswith	_	SpaceAfter=No
181	景	_	X	_	_	178	goeswith	_	SpaceAfter=No
182	と	_	ADP	_	_	178	case	_	SpaceAfter=No
183	な	_	VERB	_	_	0	root	_	SpaceAfter=No
184	っ	_	X	_	_	183	goeswith	_	SpaceAfter=No
185	た	_	AUX	_	_	183	aux	_	SpaceAfter=No
186	。	_	PUNCT	_	_	183	punct	_	SpaceAfter=No
```

![test-s510.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428317/a820c757-2684-7762-5db7-b04d81983f1d.png)

「東海地方北陸地方以東の東日本は」のあたりが完全に崩壊してしまっていて、痛々しい。まだまだアルゴリズムを工夫する必要があるのだけど、さて、どうしたらいいかな。