LoginSignup
0
0

More than 3 years have passed since last update.

COTOHA API の構文解析 を Java で100回呼んでパフォーマンス測定しました。

Last updated at Posted at 2020-02-19

CotohaNlpService クラスの作成

投稿1 COTOHA API の構文解析 を Java で利用してみる

投稿2 COTOHA API の構文解析 を Java でパースする

をベースに、COTOHA APIを簡単に利用できるように、以下のクラスを作成しました。
(後日、Maven Repository にて公開予定です)

CotohaNlpService.java
https://github.com/oyahiroki/nlp4j/blob/master/nlp4j/nlp4j-cotoha/src/main/java/nlp4j/cotoha/CotohaNlpService.java

このクラスを利用すると以下のような感じで、簡単に形態素解析結果を得ることができます。
(API呼び出しに必要な変数は環境変数としてセットしておきます)
別途、JSONを整形して改行区切りでテキストファイルに保存するクラスを作成しましたので、呼び出し回数の節約も可能になりました。

CotohaNlpService service = new CotohaNlpService();
DefaultNlpServiceResponse response = service.nlpV1Parse("今日は学校に走って行きました。");
// レスポンスのJSON が出力される。キーワードクラスとして返すメソッドも用意している。
System.err.println(response.getOriginalResponseBody()); 

データの用意

国土交通省「自動車のリコール・不具合情報」からデータをダウンロードして、100件分を利用しました。
手でHTMLをコピペするのは当然面倒ですので、ごにょごにょ しました。^_^;

国土交通省「自動車のリコール・不具合情報」
http://carinf.mlit.go.jp/jidosha/carinf/opn/index.html

100回呼んでみる

100回呼んでみた結果は以下のとおりです。

横軸が試行回数で、縦軸が処理時間です。
クライアント側でのJSONパースの処理を含んでいますが、数msと考えてよいでしょう。
最初に2000 msくらいかかっていますが、これはTokenの取得も含んでいます。
だいたいが 200-300 msに収まっているのですが、時々突発的に遅くなるようです。
DEV環境向けのは遅いという可能性も高いと思いますし、もちろんネットワーク環境にもよると思います。

image.png

次に、文字列の長さと処理時間のグラフです。
見たところ、文字列の長さと処理時間に相関はなさそうです。(極端に長い文字などは変わる可能性が高いと思います)

image.png

以下、生データです。

length,time
61,2001
73,337
54,310
79,349
58,274
51,269
41,660
21,263
38,283
74,295
52,4472
70,1138
68,3074
31,243
39,251
15,219
11,258
14,259
62,293
66,276
27,272
18,220
63,278
62,428
68,284
50,288
43,250
45,264
70,273
58,250
157,593
88,280
66,264
26,272
38,1514
8,237
42,256
53,1472
42,2668
35,230
32,235
36,241
116,325
17,254
102,309
59,268
21,220
43,278
64,249
32,246
31,247
27,252
70,3698
61,340
51,233
23,225
20,226
60,310
50,1685
72,281
37,270
45,253
13,224
54,243
64,302
52,1876
90,3251
30,9501
73,2323
70,3689
70,1304
61,303
67,262
17,3032
128,302
63,272
33,238
32,257
106,3906
57,261
103,299
82,270
71,268
158,803
41,255
36,284
62,304
36,234
38,1778
19,1478
90,345
22,239
62,310
72,2555
66,256
25,927
33,242
39,283
24,237
42,247

以上

0
0
0

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