|
|
||
|---|---|---|
| .settings | ||
| bin | ||
| lib | ||
| src | ||
| .classpath | ||
| .gitignore | ||
| .project | ||
| AUTHORS.md | ||
| LICENSE.md | ||
| Lucene.ABOUT | ||
| README.md | ||
| pom.xml | ||
README.md
##this project is mainly used to get the github software recommendation of stackoverflow users ##to run this project, firstly you need to install JDK1.7+ ##in folder rec, use "mvn assembly:assembly" to compile this project ##use index_main.sh filter_projects.sh main.sh to run each subprogram
The project mainly consists of five parts
- the sourceDao(com.ow2.rec.sourceDao) part is the operation of source database, which includes:
- ProjectDao: this is the operation of Github projects
- SOFFilterSourceDao: this is the operation of filtering the stackoverflow users
- TagDao: this is the operation of stackoverflow tags
- UserTagDao: this is the operation of the middle result table, which names user_tags
- the targetDao(com.ow2.rec.targetDao) part is the operation of target database, which includes:
- MatchResultDao: this is the operation of processing the match result of stackoverflow users and github projects
- SOFFilterTargetDao: this is the operation of storing stackoverflow users after filtering
- the lucene(com.ow2.rec.lucene) part includes all the operations relating to lucene, which includes:
- LuceneIndex: create index
- LuceneSearch: search projects using lucene index
- the main(com.ow2.rec.main) part includes all the entrances of "main" functions, which includes:
- FilterUsers: this is the entrance which used to filter stackoverflow users(those who is not that active in stackoverflow)
- IndexMain: this is the entrance of creating lucene index
- Main: this is the entrance of creating queries and calculate relation scores between stackoverflow users and github projects
- Match: this is auxiliary class for Main class
- GetGreatPrj: this is used to get projects with high activeness after getting the match result
- the model(com.ow2.rec.model) part includes all the models used in the whole process:
- MatchItem: this is the model corresponding to the match result
- Project: this model is corresponding to Github projects
- Tag: this model is corresponding to the stackoverflow Tags table
- User: this model is corresponding to the stackoverflow Users table
- UserTag: this model is correponding to the middle result table called user_tags, which is used to store the relation between stackoverflow users and their related tags
- the util(com.ow2.rec.util) part is the auxiliary part:
- Normalizer: this class is used to normalize the data that we used in the process, which includes the operation of tag, string, number and etc
- SimilarityCounter: this class is used to calculate the similarity between two texts
##to run the project, we need the following database tables:
- user_tags1~user_tags12: these tables are used to store the statistical middle result of stackoverflow users ,posts and tags structure: Id, UserId, PostId, Tag, Updatetime
- Users: this is the users table of stackoverflow
- user_tags: this table is used to store the stackoverflow user id and their related tags structure: Id, UserId, AllTags(eg:<file-io,java>)
- watchers: this is the watchers table of github
- stackoverflow_users: this table is used to store users of stackoverflow after filtering structure: same structure as Users
- projects: this is the projects table of github
##the database we used in this project is ow2(source database) and ossean_production(target database). If you want to change the name, modify applicationContext.xml applicationContext_mybatis.xml in bin/resources
##the demo we will present in http://ossean.trustie.net/softwarerec