1 API Recommendation Wujie Zheng

Slides:



Advertisements
Similar presentations
Search in Source Code Based on Identifying Popular Fragments Eduard Kuric and Mária Bieliková Faculty of Informatics and Information.
Advertisements

gSpan: Graph-based substructure pattern mining
Association Rules Spring Data Mining: What is it?  Two definitions:  The first one, classic and well-known, says that data mining is the nontrivial.
Mining di Dati Web Web Community Mining and Web log Mining : Commody Cluster based execution Romeo Zitarosa.
Toward Automatic Music Audio Summary Generation from Signal Analysis Seminar „Communications Engineering“ 11. December 2007 Patricia Signé.
Chase Repp.  knowledge discovery  searching, analyzing, and sifting through large data sets to find new patterns, trends, and relationships contained.
Lecture 1 Introduction to the ABAP Workbench
Query Dependent Pseudo-Relevance Feedback based on Wikipedia SIGIR ‘09 Advisor: Dr. Koh Jia-Ling Speaker: Lin, Yi-Jhen Date: 2010/01/24 1.
Context-aware Query Suggestion by Mining Click-through and Session Data Authors: H. Cao et.al KDD 08 Presented by Shize Su 1.
Video Summarization Using Mutual Reinforcement Principle and Shot Arrangement Patterns Lu Shi Oct. 4, 2004.
A Web of Concepts Dalvi, et al. Presented by Andrew Zitzelberger.
Web Information Retrieval and Extraction Chia-Hui Chang, Associate Professor National Central University, Taiwan
© Prentice Hall1 DATA MINING TECHNIQUES Introductory and Advanced Topics Eamonn Keogh (some slides adapted from) Margaret Dunham Dr. M.H.Dunham, Data Mining,
Zdravko Markov and Daniel T. Larose, Data Mining the Web: Uncovering Patterns in Web Content, Structure, and Usage, Wiley, Slides for Chapter 1:
The Web is perhaps the single largest data source in the world. Due to the heterogeneity and lack of structure, mining and integration are challenging.
Web Information Retrieval and Extraction Chia-Hui Chang, Associate Professor National Central University, Taiwan Sep. 16, 2005.
J. Chen, O. R. Zaiane and R. Goebel An Unsupervised Approach to Cluster Web Search Results based on Word Sense Communities.
Introduction to WEKA Aaron 2/13/2009. Contents Introduction to weka Download and install weka Basic use of weka Weka API Survey.
Overview of Web Data Mining and Applications Part I
Data Mining: Concepts & Techniques. Motivation: Necessity is the Mother of Invention Data explosion problem –Automated data collection tools and mature.
OLAM and Data Mining: Concepts and Techniques. Introduction Data explosion problem: –Automated data collection tools and mature database technology lead.
『 Data Mining 』 By Jung, hae-sun. 1.Introduction 2.Definition 3.Data Mining Applications 4.Data Mining Tasks 5. Overview of the System 6. Data Mining.
Hipikat: A Developer’s Recommender Davor Cubranic, Gail Murphy, and Kelly Booth University of British Columbia.
Data Mining Chun-Hung Chou
Page 1 WEB MINING by NINI P SURESH PROJECT CO-ORDINATOR Kavitha Murugeshan.
An Integrated Approach to Extracting Ontological Structures from Folksonomies Huairen Lin, Joseph Davis, Ying Zhou ESWC 2009 Hyewon Lim October 9 th, 2009.
CS525: Big Data Analytics Machine Learning on Hadoop Fall 2013 Elke A. Rundensteiner 1.
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
GLOSSARY COMPILATION Alex Kotov (akotov2) Hanna Zhong (hzhong) Hoa Nguyen (hnguyen4) Zhenyu Yang (zyang2)
Web Document Clustering By Sang-Cheol Seok. 1.Introduction: Web document clustering? Why ? Two results for the same query ‘amazon’ Google : currently.
Improving Programmer Productivity via Mining Program Source Code Tao Xie Department of Computer Science North Carolina State University
1 PARSEWeb: A Programmer Assistant for Reusing Open Source Code on the Web Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Bug Localization with Machine Learning Techniques Wujie Zheng
1 Mining Test Oracles for Search Engines Wujie Zheng
Friends and Locations Recommendation with the use of LBSN By EKUNDAYO OLUFEMI ADEOLA
Principles of Data Mining. Introduction: Topics 1. Introduction to Data Mining 2. Nature of Data Sets 3. Types of Structure Models and Patterns 4. Data.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
Query Suggestion Naama Kraus Slides are based on the papers: Baeza-Yates, Hurtado, Mendoza, Improving search engines by query clustering Boldi, Bonchi,
Frequent Subgraph Discovery Michihiro Kuramochi and George Karypis ICDM 2001.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
Zee Source © 2004 Zee Source, All Rights Reserved1 Pankaj K Garg Zee Source May 25, 2004 Mining Software Repositories to Promote Reuse.
Alattin: Mining Alternative Patterns for Detecting Neglected Conditions Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Exploiting Code Search Engines to Improve Programmer Productivity and Quality Suresh Thummalapenta Advisor: Dr. Tao Xie Department of Computer Science.
Bug Localization with Association Rule Mining Wujie Zheng
Chittampally Vasanth Raja 10IT05F vasanthexperiments.wordpress.com.
1 Introduction to Data Mining C hapter 1. 2 Chapter 1 Outline Chapter 1 Outline – Background –Information is Power –Knowledge is Power –Data Mining.
Introduction to Data Mining by Yen-Hsien Lee Department of Information Management College of Management National Sun Yat-Sen University March 4, 2003.
API Hyperlinking via Structural Overlap Fan Long, Tsinghua University Xi Wang, MIT CSAIL Yang Cai, MIT CSAIL.
Clustering Algorithms Meta Applier (CAMA) Toolbox Dmitry S. Shalymov Kirill S. Skrygan Dmitry A. Lyubimov.
A RESEARCH SUPPORT SYSTEM FRAMEWORK FOR WEB DATA MINING Jin Xu, Yingping Huang, Gregory Madey Department of Computer Science and Engineering University.
Clustering Algorithms Sunida Ratanothayanon. What is Clustering?
Stories of the past and a future topic on API recommendation Qirun Zhang.
© Prentice Hall1 DATA MINING Web Mining Margaret H. Dunham Department of Computer Science and Engineering Southern Methodist University Companion slides.
Wujie Zheng 1, Hao Ma 2, Michael Lyu 1, Tao Xie 3, and Irwin King 1,4 1 CUHK, 2 Microsoft Research, 3 NCSU, 4 AT&T Labs Nov. 9, 2011 Mining Test Oracles.
Chapter 8: Web Analytics, Web Mining, and Social Analytics
Patterns extraction from process executions
Text & Web Mining 9/22/2018.
Mining and Analyzing Data from Open Source Software Repository
Cross-library API Recommendation Using Web Search Engines
Smart Portal To Protect Child Online
Boštjan Kožuh Statistical Office of the Republic of Slovenia,
Homework Assignment 1: Use the following data set to test the performance difference of three clustering algorithms: K-means, AP clustering and Spectral.
Jinhong Jung, Woojung Jin, Lee Sael, U Kang, ICDM ‘16
Entity Description Pattern Extraction and Their Usage in Entity Query
MAPO: Mining and Recommending API Usage Patterns
CSE591: Data Mining by H. Liu
Individual APT Presentation January 2006
Igor Stančin, Alan Jović to: {igor.stancin,
Presentation transcript:

1 API Recommendation Wujie Zheng

2 Outline Introduction Recommending Co-used Methods for a Given API  Mining-based Approaches  Program-analysis-based Approaches Recommending Method Sequences to Create a Given Type of Object  Mining-based Approaches  Program-analysis-based Approaches Potential Work

3 Introduction API Recommendation  To recommend API methods (method sequences) for a given query, which can be a method or a target object type

4 Introduction API Recommendation  Tasks To recommend co-used methods for a given API To recommend method sequences to create a given type of object  Approaches Mining-based Approaches Program-analysis-based Approaches

5 Recommending Co-used Methods for a Given API The Task  To recommend API methods that are co-used with a given API method  E.g., given a query fopen(), we may recommend fclose()  To help write client code, or study/modify the application/library code

6 Recommending Co-used Methods for a Given API Mining-based Approaches  To mine API usage patterns from a code repository  The code repository could be a local repository or a online code repository

7 Recommending Co-used Methods for a Given API Mining-based Approaches  PR-Miner Extract programming rules using frequent itemset mining Find 16 bugs in Linux, 6 in PostgreSQL and 1 in Apache

8 Recommending Co-used Methods for a Given API Mining-based Approaches  MAPO Mine programming rules using Google code search

9 Recommending Co-used Methods for a Given API Program-analysis-based Approaches  To identify related methods based on the Program Dependence Graph

10 Recommending Co-used Methods for a Given API Program-analysis-based Approaches  FRIAR Find a base set based on callgraph Rank the methods in the base set using HITS

11 Recommending Co-used Methods for a Given API Program-analysis-based Approaches  Altair Build an augmented access graph Define a similarity measurement of methods Cluster the methods using spectral clustering

12 Recommending Co-used Methods for a Given API

13 Recommending Method Sequences to Create a Given Type of Object The Task  To recommend method sequences that can create a given type of object  E.g., given a query ObjectInputStream, we may recommend FileInputStream f2 = new FileInputStream("test.ser"); ObjectInputStream in = new ObjectInputStream(f2);  To help write client code or study the application/library code

14 Recommending Method Sequences to Create a Given Type of Object Mining-based Approaches  To mine method sequences from a code repository

15 Recommending Method Sequences to Create a Given Type of Object Mining-based Approaches  PARSEWeb Use Google code search and then mine frequent patterns Google code search provides relevant method sequences The mining procedure provides additional information, e.g., the occurrence of each pattern

16 Recommending Method Sequences to Create a Given Type of Object Program-analysis-based Approaches  Prospector (JavaSketch) Build a signature graph, whose edges represent various relationships Given an object type, it backward searches the graph for method sequences that can create an object

17 Recommending Method Sequences to Create a Given Type of Object

18 Potential Work To recommend alternative methods for a given method  E.g., given a query “kmeans, matlab”, we may recommend “linkage (hierarchical clustering)”  E.g., given a query “push_back, vector”, we may recommend “insert”  Mining? Structural analysis? Content Analysis?

19 Potential Work To build a API usage pattern repository  Previous tools check only API usage patterns mined from local repositories, which could fail if developers make the same mistake throughout the code.  Developers may check the API methods one by one using online repositories, which could be tedious.  Can we build a API usage pattern repository in advance?

20 Thank you!