User:Sudeepam: Difference between revisions

Jump to navigation Jump to search
6,520 bytes removed ,  21 December 2018
No edit summary
 
Line 166: Line 166:
* '''Did you select a task from our list of proposals and ideas? If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.'''
* '''Did you select a task from our list of proposals and ideas? If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.'''


::Yes, I have decided to work on the '''command line suggestion feature [https://savannah.gnu.org/bugs/?46881]'''. This feature is essentially a complex, decision making problem and therefore, I will approach it using Artificial Neural Networks, made using Octave (m-scripts) itself.
::Yes, I have decided to work on the '''command line suggestion feature [https://savannah.gnu.org/bugs/?46881]'''.
 
::''My special focus would be to have a minimal trade-off between the accuracy and speed of the feature.'' Please take a look at the last, and additional section of 'Project Description'[https://wiki.octave.org/User:Sudeepam#Project_Description] for technical details. Please consider reading the Project Description section before going through the tentative timeline which is given below. I would like to apologize for creating this extra part but it describes some of the important technicalities of this project and I believed that they should be included.
 
*'''Please provide a rough estimated timeline for your work on the task.'''
 
:'''Preparations for the project (pre-community bonding)'''
::While this application is being reviewed, I have started working on a m-script which will be used to catch the most common typographic errors that the users make. This list of errors could then be...
 
::-Uploaded to a secure server directly.
::-Stored as a text file, and we can ask the users to share this file with us.
 
:'''Community Bonding period:'''
 
::I will use the community bonding period to...
 
::-Persuade the community to use our data extraction script and help us collect training, cross-validation, and test data. This can be done by discussing the benefits of a command line suggestion feature and by sharing this[https://github.com/Sudeepam97/Did_You_Mean] small demonstrative implementation that I have created.
 
::-Ask the community to report issues with the m-scripts containing the demo implementation. I’ll shift the demo implementation to mercurial if required.
 
::-Discuss the project with the mentors in detail.
 
::-Discuss how we should recieve the data generated by the users, implement the approach, and organize the data as it is received and divide it to create proper, training, cross-validation, and test sets for the Neural Network.
 
:'''Phase1, May, 14 – June, 10 (4 weeks):'''
 
::'''Week 1 (May, 14 – May, 21):''' I would not be able to do a lot of work in this week as I have my final examinations during this time. I will take this week as an extension of the community bonding period and use it to collect issues, collect more data and divide it into proper data-sets.
::'''Week 2 and Week 3 (May, 21 – June, 3):''' Most of the code of the Neural Network would be identical to my demo implementation and so I’ll start by making my demo implementation bug free (Some known issues can be found here: [https://github.com/Sudeepam97/Did_You_Mean/issues]) and by coding it according to the Octave coding standards. I plan to keep the user data coming for these weeks also and so I’ll leave room for network parameters such as the number of hidden layers and the number of neurons per hidden layer because these are data dependent parameters. If all this work gets completed before the expected time, I’ll automatically move on to complete next week’s work.
::'''Week 4 (June, 4 – June, 10):''' By now we will have sufficient data, this will include the data received from octave-online.net[http://lists.gnu.org/archive/html/octave-maintainers/2018-03/msg00248.html] and from approximately 6 weeks of extraction script’s usage. I’ll quickly give a final look to the data and start training the Neural Network with it. I will choose appropriate values of the data dependent network parameters which, while keeping the speed of the Neural Network fast, would fit the learning parameters (weights) of the Neural Network to our data with a high level of accuracy. I would then measure, and maximize, the accuracy of the Network on cross validation and test sets and see how our Network generalizes to unknown typographic errors. I will also write some additional tests for the set of m-scripts used.
 
::'''Phase 1 evaluations goal:''' A set of working Neural Network m-scripts, which could suggest corrections for typographic errors.
 
:'''Phase2, June, 11 – July, 8 (4 weeks):'''
 
::'''Week 5 (June, 11 – June, 17):''' I’d like to take this week to work in close connection with the community and perform tests on the newly created m-scripts. Essentially, I’ll be asking the community to try out our m-scripts and see how they work for them. I will work on the issues pointed out by the community and by the mentors as they are reported.
::'''Week 6 (June, 17 – June, 24):''' I’ll fix any remaining issues and proceed to discuss and understand how our Neural Network should be integrated with Octave. I’ll start working on integrating the network as soon as the approach is decided. It is worth mentioning here that we will merge a '''trained network''' with Octave and therefore the chances of our code being slow are eliminated.
::'''Week 7 – Week 8 (June, 25 – June, 8):''' I will integrate our neural network with Octave as discussed, and write, and perform tests to make sure that everything works the way it should. If this task gets completed earlier than expected, I’ll automatically move on to the next task.
 
::'''Phase 2 evaluations goal:''' A development version of Octave which has a command line suggestion feature (currently there will be no mechanism available to easily select the corrections suggested and easily enable/disable this feature).
 
:'''Phase 3, July, 9 – August, 5 (4 weeks):'''
 
::'''Week 9 (July, 9 – July, 15):''' The development version of Octave, with an inbuilt suggestion feature will be open for error reports. I’ll work on the issues as they are reported and also discuss what an easy enable/disable mechanism and the mechanism to easily select the corrections suggested should be like.
::'''Week 10 (July, 16 – July, 22):''' I’ll create the required mechanisms as discussed, write and perform tests, and push a development version with a complete command line suggestion feature.
::'''Week, 11 – Week, 12 (July, 23 – August, 5):''' I’ll work in close connection with the community, fix the issues that are reported, and ask for further suggestions on how the command line suggestion feature could be made better.
 
::'''Phase 3 evaluations goal:''' A development version of Octave with a complete and working command line suggestion feature, open to feedback and criticisms
 
:'''Last days of GSoC:'''
::During the last days of GSoC, I’ll try to improve the command line suggestion feature, based on the feedback received.
98

edits

Navigation menu