98
edits
Line 169: | Line 169: | ||
::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)]. 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. | ||
::''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 | ::''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.''' | *'''Please provide a rough estimated timeline for your work on the task.''' | ||
Line 183: | Line 183: | ||
::I will use the community bonding period to... | ::I will use the community bonding period to... | ||
::-Persuade the community to use our data extraction script and help us collect training data. This | ::-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 | ::-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 | ::-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. | ||
:'''May, 14 – June, 10 (4 weeks)''' | :'''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 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 | ::'''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 | ::'''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 | ::'''Phase 1 evaluations goal:''' A set of working Neural Network m-scripts, which could suggest corrections for typographic errors. | ||
:'''June, 11 – July, 8 (4 weeks)''' | :'''June, 11 – July, 8 (4 weeks)''' | ||
Line 214: | Line 214: | ||
::'''Phase 3 evaluations goal:''' A development version of Octave with a complete and working command line suggestion feature, open to feedback and criticisms | ::'''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''' | |||
::During the last days of GSoC, I’ll try to improve the command line suggestion feature, based on the feedback received. | |||
== Project Description == | == Project Description == |
edits