Vol.58 No (Apr. 2017) API 1,a) , recurrent neural network 10 38% 1 An API Suggestion Using Recurrent Neural Networks Tetsu

Similar documents
& Vol.5 No (Oct. 2015) TV 1,2,a) , Augmented TV TV AR Augmented Reality 3DCG TV Estimation of TV Screen Position and Ro

IPSJ SIG Technical Report Secret Tap Secret Tap Secret Flick 1 An Examination of Icon-based User Authentication Method Using Flick Input for

Fig. 3 3 Types considered when detecting pattern violations 9)12) 8)9) 2 5 methodx close C Java C Java 3 Java 1 JDT Core 7) ) S P S

Vol.55 No (Jan. 2014) saccess 6 saccess 7 saccess 2. [3] p.33 * B (A) (B) (C) (D) (E) (F) *1 [3], [4] Web PDF a m

1_26.dvi

1 Fig. 1 Extraction of motion,.,,, 4,,, 3., 1, 2. 2.,. CHLAC,. 2.1,. (256 ).,., CHLAC. CHLAC, HLAC. 2.3 (HLAC ) r,.,. HLAC. N. 2 HLAC Fig. 2

1 Web [2] Web [3] [4] [5], [6] [7] [8] S.W. [9] 3. MeetingShelf Web MeetingShelf MeetingShelf (1) (2) (3) (4) (5) Web MeetingShelf

MDD PBL ET 9) 2) ET ET 2.2 2), 1 2 5) MDD PBL PBL MDD MDD MDD 10) MDD Executable UML 11) Executable UML MDD Executable UML

fiš„v8.dvi

17 Proposal of an Algorithm of Image Extraction and Research on Improvement of a Man-machine Interface of Food Intake Measuring System

2006 [3] Scratch Squeak PEN [4] PenFlowchart 2 3 PenFlowchart 4 PenFlowchart PEN xdncl PEN [5] PEN xdncl DNCL 1 1 [6] 1 PEN Fig. 1 The PEN

[2] OCR [3], [4] [5] [6] [4], [7] [8], [9] 1 [10] Fig. 1 Current arrangement and size of ruby. 2 Fig. 2 Typography combined with printing

第62巻 第1号 平成24年4月/石こうを用いた木材ペレット

1 1 CodeDrummer CodeMusician CodeDrummer Fig. 1 Overview of proposal system c

IPSJ SIG Technical Report Vol.2014-CG-155 No /6/28 1,a) 1,2,3 1 3,4 CG An Interpolation Method of Different Flow Fields using Polar Inter

IPSJ SIG Technical Report Vol.2012-CG-148 No /8/29 3DCG 1,a) On rigid body animation taking into account the 3D computer graphics came

258 5) GPS 1 GPS 6) GPS DP 7) 8) 10) GPS GPS ) GPS Global Positioning System

& Vol.2 No (Mar. 2012) 1,a) , Bluetooth A Health Management Service by Cell Phones and Its Us

Haiku Generation Based on Motif Images Using Deep Learning Koki Yoneda 1 Soichiro Yokoyama 2 Tomohisa Yamashita 2 Hidenori Kawamura Scho

IPSJ SIG Technical Report Vol.2011-MUS-91 No /7/ , 3 1 Design and Implementation on a System for Learning Songs by Presenting Musical St

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

No. 3 Oct The person to the left of the stool carried the traffic-cone towards the trash-can. α α β α α β α α β α Track2 Track3 Track1 Track0 1

IPSJ SIG Technical Report Vol.2009-DPS-141 No.20 Vol.2009-GN-73 No.20 Vol.2009-EIP-46 No /11/27 1. MIERUKEN 1 2 MIERUKEN MIERUKEN MIERUKEN: Spe

日本感性工学会論文誌

IPSJ SIG Technical Report Pitman-Yor 1 1 Pitman-Yor n-gram A proposal of the melody generation method using hierarchical pitman-yor language model Aki

B HNS 7)8) HNS ( ( ) 7)8) (SOA) HNS HNS 4) HNS ( ) ( ) 1 TV power, channel, volume power true( ON) false( OFF) boolean channel volume int

The copyright of this material is retained by the Information Processing Society of Japan (IPSJ). The material has been made available on the website

DPA,, ShareLog 3) 4) 2.2 Strino Strino STRain-based user Interface with tacticle of elastic Natural ObjectsStrino 1 Strino ) PC Log-Log (2007 6)

Web Stamps 96 KJ Stamps Web Vol 8, No 1, 2004

Vol.54 No (July 2013) [9] [10] [11] [12], [13] 1 Fig. 1 Flowchart of the proposed system. c 2013 Information

IPSJ SIG Technical Report Vol.2009-CVIM-167 No /6/10 Real AdaBoost HOG 1 1 1, 2 1 Real AdaBoost HOG HOG Real AdaBoost HOG A Method for Reducing

2017 (413812)


Input image Initialize variables Loop for period of oscillation Update height map Make shade image Change property of image Output image Change time L

1 4 4 [3] SNS 5 SNS , ,000 [2] c 2013 Information Processing Society of Japan

, : GUI Web Java 2.1 GUI GUI GUI 2 y = x y = x y = x

1 Fogg Fogg Behavior Model [1] information cascade [2] TPO [3] Fig. 2 Target area of this paper. 1 Fig. 1 Fogg b

_314I01BM浅谷2.indd

1 [1, 2, 3, 4, 5, 8, 9, 10, 12, 15] The Boston Public Schools system, BPS (Deferred Acceptance system, DA) (Top Trading Cycles system, TTC) cf. [13] [

IPSJ SIG Technical Report Vol.2016-CE-137 No /12/ e β /α α β β / α A judgment method of difficulty of task for a learner using simple

DEIM Forum 2009 C8-4 QA NTT QA QA QA 2 QA Abstract Questions Recomme

7,, i

FUJII, M. and KOSAKA, M. 2. J J [7] Fig. 1 J Fig. 2: Motivation and Skill improvement Model of J Orchestra Fig. 1: Motivating factors for a

Kyushu Communication Studies 第2号

A Feasibility Study of Direct-Mapping-Type Parallel Processing Method to Solve Linear Equations in Load Flow Calculations Hiroaki Inayoshi, Non-member

IPSJ SIG Technical Report iphone iphone,,., OpenGl ES 2.0 GLSL(OpenGL Shading Language), iphone GPGPU(General-Purpose Computing on Graphics Proc

IT,, i

DEIM Forum 2009 B4-6, Str

,., ping - RTT,., [2],RTT TCP [3] [4] Android.Android,.,,. LAN ACK. [5].. 3., 1.,. 3 AI.,,Amazon, (NN),, 1..NN,, (RNN) RNN

[5] [6] [7 10] 2 [5] (RQ:Research Question) RQ1:? RQ2:? Commit Guru Commit Guru [1] Emad Shihab Web Commit Guru [10] Number of Subsystems(

Core1 FabScalar VerilogHDL Cache Cache FabScalar 1 CoreConnect[2] Wishbone[3] AMBA[4] AMBA 1 AMBA ARM L2 AMBA2.0 AMBA2.0 FabScalar AHB APB AHB AMBA2.0

自然言語処理24_705

Publish/Subscribe KiZUNA P2P 2 Publish/Subscribe KiZUNA 2. KiZUNA 1 Skip Graph BF Skip Graph BF Skip Graph Skip Graph Skip Graph DDLL 2.1 Skip Graph S

Vol.53 No (Mar. 2012) 1, 1,a) 1, 2 1 1, , Musical Interaction System Based on Stage Metaphor Seiko Myojin 1, 1,a

Core Ethics Vol.

E MathML W3C MathJax 1.3 MathJax MathJax[5] TEX MathML JavaScript TEX MathML [8] [9] MathSciNet[10] MathJax MathJax MathJax MathJax MathJax MathJax We

1., 1 COOKPAD 2, Web.,,,,,,.,, [1]., 5.,, [2].,,.,.,, 5, [3].,,,.,, [4], 33,.,,.,,.. 2.,, 3.., 4., 5., ,. 1.,,., 2.,. 1,,

IPSJ SIG Technical Report Vol.2011-DBS-153 No /11/3 Wikipedia Wikipedia Wikipedia Extracting Difference Information from Multilingual Wiki

Table 1. Reluctance equalization design. Fig. 2. Voltage vector of LSynRM. Fig. 4. Analytical model. Table 2. Specifications of analytical models. Fig

<95DB8C9288E397C389C88A E696E6462>

,,,,., C Java,,.,,.,., ,,.,, i

206“ƒŁ\”ƒ-fl_“H„¤‰ZŁñ

Study on Throw Accuracy for Baseball Pitching Machine with Roller (Study of Seam of Ball and Roller) Shinobu SAKAI*5, Juhachi ODA, Kengo KAWATA and Yu

WikiWeb Wiki Web Wiki 2. Wiki 1 STAR WARS [3] Wiki Wiki Wiki 2 3 Wiki 5W1H Wiki Web 2.2 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 2.3 Wiki 2015 Informa

Vol. 42 No. SIG 8(TOD 10) July HTML 100 Development of Authoring and Delivery System for Synchronized Contents and Experiment on High Spe

TF-IDF TDF-IDF TDF-IDF Extracting Impression of Sightseeing Spots from Blogs for Supporting Selection of Spots to Visit in Travel Sat

(a) 1 (b) 3. Gilbert Pernicka[2] Treibitz Schechner[3] Narasimhan [4] Kim [5] Nayar [6] [7][8][9] 2. X X X [10] [11] L L t L s L = L t + L s

[2] 2. [3 5] 3D [6 8] Morishima [9] N n 24 24FPS k k = 1, 2,..., N i i = 1, 2,..., n Algorithm 1 N io user-specified number of inbetween omis

WHITE PAPER RNN

1 Fig. 2 2 Fig. 1 Sample of tab UI 1 Fig. 1 that changes by clicking tab 5 2. Web HTML Adobe Flash Web ( 1 ) ( 2 ) ( 3 ) ( 4 ) ( 5 ) 3 Web 2.1 Web Goo

% 95% 2002, 2004, Dunkel 1986, p.100 1

IPSJ SIG Technical Report Vol.2012-MUS-96 No /8/10 MIDI Modeling Performance Indeterminacies for Polyphonic Midi Score Following and

2018 IPSJ/SIGSE Software Engineering Symposium (SES2018) 1,a) 1,b) 1,c) Java 2014 Java Java Java Stream Optional 18% Stream 5% Stream JDK6/7

IPSJ SIG Technical Report , 2 Andorid Capture-A-Moment Capture-A-Moment Capturing System by SmartPhone to Record Real-Time Scene Kohei Takada,

Research Question Unacceptable Files:FS GQM 1 2 GQM s r 2.1 GQM Goal-Question-Metric GQM [2] GQM 3 Qustions GQM 3 GQM 2.2 UFs AFs Acceptable Fi

2) 3) LAN 4) 2 5) 6) 7) K MIC NJR4261JB0916 8) 24.11GHz V 5V 3kHz 4 (1) (8) (1)(5) (2)(3)(4)(6)(7) (1) (2) (3) (4)

Computational Semantics 1 category specificity Warrington (1975); Warrington & Shallice (1979, 1984) 2 basic level superiority 3 super-ordinate catego

Vol. 44 No. SIG 12(TOD 19) Sep MF MF MF Content Protection Mechanism Based on Media Framework and an Implementation for Autonomous Information C

900 GPS GPS DGPS Differential GPS RTK-GPS Real Time Kinematic GPS 2) DGPS RTK-GPS GPS GPS Wi-Fi 3) RFID 4) M-CubITS 5) Wi-Fi PSP PlayStation Portable

Duplicate Near Duplicate Intact Partial Copy Original Image Near Partial Copy Near Partial Copy with a background (a) (b) 2 1 [6] SIFT SIFT SIF

IPSJ SIG Technical Report Vol.2010-NL-199 No /11/ treebank ( ) KWIC /MeCab / Morphological and Dependency Structure Annotated Corp

IPSJ SIG Technical Report Vol.2012-HCI-149 No /7/20 1 1,2 1 (HMD: Head Mounted Display) HMD HMD,,,, An Information Presentation Method for Weara


johnny-paper2nd.dvi

3_23.dvi

13金子敬一.indd

58 10

Convolutional Neural Network A Graduation Thesis of College of Engineering, Chubu University Investigation of feature extraction by Convolution

1 DHT Fig. 1 Example of DHT 2 Successor Fig. 2 Example of Successor 2.1 Distributed Hash Table key key value O(1) DHT DHT 1 DHT 1 ID key ID IP value D

HP HP ELF 7 52

main.dvi

Fig. 3 Flow diagram of image processing. Black rectangle in the photo indicates the processing area (128 x 32 pixels).

IPSJ SIG Technical Report Vol.2010-GN-74 No /1/ , 3 Disaster Training Supporting System Based on Electronic Triage HIROAKI KOJIMA, 1 KU

ID 3) 9 4) 5) ID 2 ID 2 ID 2 Bluetooth ID 2 SRCid1 DSTid2 2 id1 id2 ID SRC DST SRC 2 2 ID 2 2 QR 6) 8) 6) QR QR QR QR

IPSJ SIG Technical Report Vol.2009-BIO-17 No /5/26 DNA 1 1 DNA DNA DNA DNA Correcting read errors on DNA sequences determined by Pyrosequencing

Vol. 48 No. 4 Apr LAN TCP/IP LAN TCP/IP 1 PC TCP/IP 1 PC User-mode Linux 12 Development of a System to Visualize Computer Network Behavior for L

IPSJ SIG Technical Report Vol.2016-MUS-111 No /5/21 1, 1 2,a) HMM A study on an implementation of semiautomatic composition of music which matc

3807 (3)(2) ,267 1 Fig. 1 Advertisement to the author of a blog. 3 (1) (2) (3) (2) (1) TV 2-0 Adsense (2) Web ) 6) 3

Vol. 48 No. 3 Mar PM PM PMBOK PM PM PM PM PM A Proposal and Its Demonstration of Developing System for Project Managers through University-Indus

02’ÓŠ¹/“Hfi¡

Transcription:

API 1,a) 2016 8 8, 2017 1 10 recurrent neural network 10 38% 1 An API Suggestion Using Recurrent Neural Networks Tetsuo Yamamoto 1,a) Received: August 8, 2016, Accepted: January 10, 2017 Abstract: Developers reuse existing source code or use libraries to develop effectively. In this study, we focus on the order of method invocation statements in existing source code and propose to suggest method invocation statements. This paper shows an approach to suggest method invocation statements using recurrent neural network. We have implemented the approach and conducted experiments to measure an accuracy with 10 open source software projects. We have investigated various prameters of recurrent neural network. Our evaluation has shown that our approach is 38% accuracy in API code suggestion, it can correctly suggest the API with top 1 candidate. Keywords: code suggestion, recurrent neural netowork, deep learing 1. Android Android API 42% [17] 1 College of Engineering, Nihon University, Koriyama, Fukushima 963 8642, Japan a) tetsuo@cs.ce.nihon-u.ac.jp 1 Andorid View TextView Button onclicklistener API c 2017 Information Processing Society of Japan 769

j w j 1 j 1 w j 1 1 = w 1,w 2,w 3,...,w j 1 w j 1 1 w j P (w j w j 1 1 ) s T P (w T 1 )= T j=1 P (w j w j 1 1 ) 1 Java Fig. 1 A Java code snippet. API [1], [4], [13], [14], [20] API [13] API [20] 2 API recurrent neural netowork 10 38% 1 2 3 4 5 6 2. 2.1 Bengi [3] NNLM NNLM w j 1 0 N N 1-of-N I have a pen and a eraser. N 6 I 1 have 2 a 3 pen 4 and 5 eraser 6 I 1-of-N (1, 0, 0, 0, 0, 0) T have 1-of-N (0, 1, 0, 0, 0, 0) T w j 1 j n+1 w j n n 3 I have a have a pen a pen and 2.2 Bengi n Mikolov RNNLM [11], [12] RNN T c 2017 Information Processing Society of Japan 770

w T 1 = w 1,w 2,w 3,...,w T t =1, 2, 3,... t 2 RNNLM RNN 2 w s y t w(t) y(t) s(t) w(t) t 1-of-N N M U N M s(t) W t 1 s(t) =f(uw(t)+ws(t 1)) y(t) V M N y(t) =g(vs(t)) f(z) sigmoid f(z) = 1 1+e z g(z m ) softmax g(z m )= ezm k ez k RNN Backpropagation Through Time BPTT [19] BPTT RNN Truncated BPTT Long Short-Term Memory LSTM 2 3 3. 2 RNNLM RNNLM Java 3.1 3 2 Fig. 2 RNN An architecture of RNN. Fig. 3 3 Flow of proposed method. c 2017 Information Processing Society of Japan 771

RNN 2.2 RNNLM 4 Fig. 4 List of method call statements. 3.2 API <init> # java.util.arraylist<string> add java.util.arraylist#add new java.util.arraylist<string>() java.util.arraylist#<init> 3.3 API 3.2 JDK java <eom> 1 1 4 android 5 RNNLM Fig. 5 RNNLM unfolded in time. 1 <eom> RNNLM 3.4 RNN 2.2 RNNLM 3.3 1-of-N 1 1 2 2 RNNLM truncated BPTT <eom> BPTT BPTT LSTM Java <eom> 4 RNNLM 5 1 android.view.layoutinflater#inflate c 2017 Information Processing Society of Japan 772

y(1) 5 3 2 android.view.view#findviewbyid y(2) 1 s(1) 2 s(2) <eom> y(1) y(6) 6 y(1) 2 android.view.view#findviewbyid y(1) android.view.view#findviewbyid 1-of-N y(2) 3 android.widget.textview#settext y(1) y(6) M epoch 3.5 3.2 <eom> 1 RNN 1 7 7 4 1 3 Android 1 android.view.layoutinflater#inflate 2 android.view.view#findviewbyid 3 android.widget.textview#settext 3 y(3) 2 1 5 2.2 softmax softmax 1 1-of-N y(3) android.view.view#findviewbyid 1-of-N android.view.view#findviewbyid 1 0 4. Top-k 4.1 1 Android 10 Android API android 1 android-23 *1 Android SDK API 23 Android-Universal-Image-Loader *2 MPAn- *1 http://developer.android.com/intl/ja/sdk/index. html#downloads *2 https://github.com/nostra13/android-universal-image- Loader c 2017 Information Processing Society of Japan 773

1 Table 1 Target projects. LOC android-23 1,531 212,670 3,058 Android-Universal -Image-Loader 88 13,857 64 MPAndroidChart 219 40,406 252 SlidingMenu 33 4,932 67 ViewPagerIndicator 42 4,059 36 butterknife 91 10,035 26 fresco 601 83,821 279 glide 432 52,869 272 iosched 378 62,604 631 picasso 76 13,293 99 droidchart *3 SlidingMenu *4 ViewPagerIndicator *5 butterknife *6 fresco *7 glide *8 iosched *9 picasso * 10 GitHub Android Java 1 Java LOC RNN android 1 4.2 1 10 3,491 4,784 29,463 3,019 RNN Chainer * 11 NVIDIA GeFroce GTX 970 4 GB memory GPU 1 28 26 MB 2 M 512 *3 https://github.com/philjay/mpandroidchart *4 https://github.com/jfeinstein10/slidingmenu *5 https://github.com/jakewharton/viewpagerindicator *6 https://github.com/jakewharton/butterknife *7 https://github.com/facebook/fresco *8 https://github.com/bumptech/glide *9 https://github.com/google/iosched *10 https://github.com/square/picasso *11 http://chainer.org/ epoch 1 4.3 1 10 2 a 1,a 2,...,a k, <eom> a 1 a 2 a 2 a 3 a k 1 k k 1 a k 1 a 1 a k 1 a k 1 4 1 4 4 1 android.view.layoutinflater#inflate android.view.view 2 android.view.layoutinflater#inflate android.view.view#findviewbyid 2 android.widget.textview 3 4 6 5 5 4.2 4.3.1 Top-k android-23 9 c 2017 Information Processing Society of Japan 774

2 android.view.layoutinflater#inflate Table 2 Method calls following android.view. LayoutInflater#inflate. 1 android.view.view#findviewbyid 0.007 2 android.view.view#getbottom 0.004 3 android.view.view#getviewtreeobserver 0.003 4 android.view.view#getheight 0.003 5 android.view.view#gettop 0.003 6 android.view.view#settag 0.002 7 android.view.view#setvisibility 0.002 8 android.view.view#setfocusable 0.002 9 android.view.view#setonclicklistener 0.002 10 android.view.view#getleft 0.002 11 android.view.view#getmeasuredheight 0.002 12 android.view.view#requestlayout 0.002 13 android.view.view#setlayoutparams 0.002 14 android.view.view#getvisibility 0.001 15 android.view.view#gettag 0.001 16 android.view.view#offsetleftandright 0.001 17 android.view.view#<init> 0.001 18 android.view.view#getlayoutparams 0.001 19 android.view.view#setclickable 0.001 20 android.view.view#getpaddingbottom 0.001 3 android.view.view#findviewbyid Table 3 Method calls following android.view. View#findViewById. 1 android.widget.textview#settext 0.002 2 android.widget.textview#<init> 0.002 3 android.widget.textview#setvisibility 0.001 4 android.widget.textview#settypeface 0.001 5 android.widget.textview#settextsize 0.000 6 android.widget.textview# 0.000 setmovementmethod 7 android.widget.textview# 0.000 setbackgroundresource 8 android.widget.textview#setpadding 0.000 9 android.widget.textview#settag 0.000 10 android.widget.textview# 0.000 setonclicklistener 11 android.widget.textview#append 0.000 12 android.widget.textview#settextcolor 0.000 13 android.widget.textview#setallcaps 0.000 14 android.widget.textview#gettext 0.000 15 android.widget.textview#setgravity 0.000 16 android.widget.textview# 0.000 setcontentdescription 17 android.widget.textview#setlayoutparams 0.000 18 android.widget.textview#setid 0.000 19 android.widget.textview# 0.000 announceforaccessibility 4 6 2 M 512 epoch 1 30 30 epoch Top-k k Top-1 epoch 2 38% android-23 8,482 3,249 1 3 1 5 7 4.3.2 epoch 4 6 epoch epoch API epoch 4.3.3 epoch 1 1 2 3 M 512 5 6 7 2 1,024 8 512 1 2 512 4.3.4 9 1 9 10 10 android-23 glide android-23 API glide c 2017 Information Processing Society of Japan 775

4 Table 4 android-23 A summary of the accuracy of andorid-23. 1 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Top-1 38% 38% 38% 35% 33% 34% 33% 33% 34% 32% 33% 31% 33% 31% 32% Top-5 75% 74% 73% 72% 72% 71% 71% 71% 72% 70% 72% 70% 71% 70% 70% Top-10 88% 89% 88% 88% 88% 86% 87% 86% 87% 88% 88% 86% 87% 86% 85% Top-20 97% 97% 96% 96% 96% 96% 96% 96% 96% 96% 96% 96% 95% 95% 94% 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Top-1 31% 31% 31% 31% 32% 31% 32% 33% 31% 30% 31% 31% 31% 30% 30% Top-5 69% 69% 70% 70% 69% 69% 68% 69% 68% 67% 70% 69% 68% 68% 68% Top-10 85% 85% 85% 85% 85% 84% 85% 86% 84% 85% 85% 85% 84% 85% 85% Top-20 95% 95% 95% 95% 95% 94% 95% 96% 95% 95% 95% 95% 94% 95% 95% 7 3 Table 7 Resultsof3hiddenlayers. 8,482 Top-1 3,284 38% Top-5 6,528 76% Top-10 7,573 89% Top-20 8,232 97% 6 android-23 Fig. 6 A line graph of the accuracy of andorid-23. 5 1 Table 5 Results of 1 hidden layer. 8,482 Top-1 3,012 35% Top-5 6,062 71% Top-10 7,360 86% Top-20 8,129 95% 6 2 Table 6 Resultsof2hiddenlayers. 8,482 Top-1 3,242 38% Top-5 6,398 75% Top-10 7,494 88% Top-20 8,255 97% API API 8 2 1,024 Table 8 Results of 2 hidden layers and 1,024 Units. 8,482 Top-1 3,219 37% Top-5 6,386 75% Top-10 7,506 88% Top-20 8,257 97% 4.3.5 Robbes [15] n Top-k 2 Top-1 60% Top-10 88% 2 4.3 2 10 View- PageIndicator Top-1 50% Top-10 90%Robbes Top-1 c 2017 Information Processing Society of Japan 776

9 Table 9 A comparison among projects. Total Top-1 Top-5 Top-10 Top-20 Top-1 Top-5 Top-10 Top-20 accuracy accuracy accuracy accuracy Android-Universal-Image-Loader 178 59 143 154 170 33% 80% 87% 96% MPAndroidChart 1,181 393 804 1,011 1,112 33% 68% 86% 94% SlidingMenu 210 61 140 178 193 29% 67% 85% 92% ViewPagerIndicator 184 40 89 128 178 22% 48% 70% 97% android-23 8,482 3,242 6,398 7,494 8,255 38% 75% 88% 97% butterknife 47 14 21 28 29 30% 45% 60% 62% fresco 751 150 443 604 682 20% 59% 80% 91% glide 646 129 494 572 613 20% 76% 89% 95% iosched 2,700 856 1,883 2,282 2,568 32% 70% 85% 95% picasso 189 46 115 154 177 24% 61% 81% 94% 10 2 Table 10 The accuracy of the first 2 letters of method name. Top-1 Top-10 accuracy accuracy Android-Universal-Image-Loader 60% 94% MPAndroidChart 63% 94% SlidingMenu 52% 95% ViewPagerIndicator 40% 90% android-23 68% 97% butterknife 89% 100% fresco 61% 97% glide 61% 97% iosched 56% 96% picasso 58% 96% Top-10 butterknife Top-1 89% 4.4 Mikolov RNNLM RNNLM Top-1 38% Top-1 100% API open - read - close open - read - read - close 2 open - read API close read 2 Top-1 100% Top-5 Top-10 API 4 Top-5 70% Top-10 80% API API 4.5 RNNLM RNNLM RNNLM Andorid API API c 2017 Information Processing Society of Japan 777

API API API 5. API Prospector [8] Xsnippet [16] PARSEWeb [18] Michail API [9], [10] Strathcona [6], [7] API Mishne [13] API API Bruch [4] HMM Han [5] HMM API Nguen [14] HMM Andorid API ASTLan [1] AST AST CSCC [2] API [20] 2 API API 6. API 10 38% 1 API JSPS 15K00108 [1] Nguyen, A.T. and Nguyen, T.N.: Graph-Based Statistical Language Model for Code, Proc. 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, pp.858 868 (2015). [2] Asaduzzaman, M., Roy, C.K., Schneider, K.A. and Hou, D.: CSCC: Simple, Efficient, Context Sensitive Code Completion, Proc. 2014 IEEE International Conference on Software Maintenance and Evolution, pp.71 80 (2014). [3] Bengio, Y., Ducharme, R., Vincent, P. and Janvin, C.: A Neural Probabilistic Language Model, The Journal of Machine Learning Research, Vol.3, pp.1137 1155 (2003). [4] Bruch, M., Monperrus, M. and Mezini, M.: Learning from examples to improve code completion systems, Proc. 7th Joint Meeting of the European Software Engineering Conference (ESEC ) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp.213 222 (2009). [5] Han, S.H.S., Wallace, D. and Miller, R.: Code Completion from Abbreviated Input, Proc. 24th IEEE/ACM c 2017 Information Processing Society of Japan 778

International Conference on Automated Software Engineering, pp.332 343 (2009). [6] Holmes, R. and Murphy, G.C.: Using structural context to recommend source code examples, Proc. 27th International Conference on Software Engineering, pp.117 125 (2005). [7] Holmes, R., Walker, R. and Murphy, G.: Approximate Structural Context Matching: An Approach to Recommend Relevant Examples, IEEE Trans. Software Engineering, Vol.32, No.12, pp.952 970 (2006). [8] Mandelin, D., Xu, L., Bodik, R. and Kimelman, D.: Jungloid mining: Helping to navigate the API jungle, Proc. 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp.48 61 (2005). [9] Michail, A.: Data mining library reuse patterns using generalized association rules, Proc. 22nd International Conference on Software Engineering, pp.167 176 (2000). [10] Michail, A.: Browsing and searching source code of applications written using a GUI framework, Proc. 24th International Conference on Software Engineering, pp.327 337 (2002). [11] Mikolov, T., Karafiat, M., Burget, L., Cernocky, J. and Khudanpur, S.: Recurrent Neural Network based Language Model, Interspeech 2010, pp.1045 1048 (2010). [12] Mikolov, T. and Kombrink, S.: Extensions of recurrent neural network language model, ICASSP, pp.5528 5531 (2011). [13] Mishne, A., Shoham, S. and Yahav, E.: Typestate-based semantic code search over partial programs, ACM SIG- PLAN Notices, Vol.47, No.10, pp.997 1016 (2012). [14] Nguyen, T.T., Pham, H.V., Vu, P.M. and Nguyen, T.T.: Recommending API Usages for Mobile Apps with Hidden Markov Model, Proc. 2015 IEEE/ACM International Conference on Automated Software Engineering, pp.795 800 (2015). [15] Robbes, R. and Lanza, M.: Improving code completion with program history, Automated Software Engineering, Vol.17, No.2, pp.181 212 (2010). [16] Sahavechaphan, N. and Claypool, K.: XSnippet: Mining For sample code, Proc. 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp.413 430 (2006). [17] Syer, M.D., Nagappan, M., Hassan, A.E. and Adams, B.: Revisiting Prior Empirical Findings For Mobile Apps: An Empirical Case Study on the 15 Most Popular Open- Source Android Apps, CASCON: Conference of the Center for Advanced Studies on Collaborative Research, pp.283 297 (2013). [18] Thummalapenta, S. and Xie, T.: Parseweb: A programmer assistant for reusing open source code on the web, Proc. 22nd IEEE/ACM International Conference on Automated Software Engineering, pp.204 213 (2007). [19] Werbos, P.J.: Backpropagation Through Time: What It Does and How to Do It, Proc. IEEE, Vol.78, No.10, pp.1550 1560 (1990). [20] Vol.56, No.2, pp.682 691 (2015). 9 14 16 20 23 IEEE-CS c 2017 Information Processing Society of Japan 779