Difference between revisions of "User:Ayushjain/proposal"

From Apertium
Jump to navigation Jump to search
Line 66: Line 66:
* Experimenting with apertium modules for windows.
* Experimenting with apertium modules for windows.
* Developing the understanding of apertium-python package and its wrapper functions.
* Developing the understanding of apertium-python package and its wrapper functions.
* Writing some sample code to test various features.
* Trying all the functions of Ittoolbox and writing some sample code.
* Discussing detailed work flow with mentors.
* Discussing detailed work flow with mentors.
| Report for next week’s work plan.
| Report for next week’s work plan.
Line 74: Line 74:
|
|
* This includes setting the core modules of apertium on windows using apertium-python package on github.
* This includes setting the core modules of apertium on windows using apertium-python package on github.
* Completing the installation script for windows in python.
* Completing the installation script for windows in python.
* Fixing bugs stopping apertium to install on windows.
| An installable prototype for installing apertium on windows
| An installable prototype for installing apertium on windows.
|-
|-
| 3 June - 9 June
| 3 June - 9 June
| Week 2 : Apertium support for various platforms
| Week 2 : Fixing bugs in windows installation
|
|
* Fixing bugs stopping apertium to install on windows.
* Inspecting the apertium installation and its usage for Jupyter notebook and other such platforms.
* Testing the installation on various windows versions.
* Making the wrapper thinner and using C++ bindings to perform morphological functions.
| Test version for windows
* Checking the working of language processing tools and its usability in these environments.
| Complete installation of apertium for windows using pip
|-
|-
| 10 June - 16 June
| 10 June - 16 June
| Week 3: Working on lttoolbox
| Week 3: Apertium support for various platforms
|
|
* Inspecting the apertium installation and its usage for Jupyter notebook and other such platforms.
* Working on creating a SWIG API for lttoolbox.
* Fixes various bugs that might occur.
* Performing morphological analysis using FSTProcessor.
* Getting it ready for release for windows.
* Adding other functionalities as guided by mentors.
| Complete installation of apertium for windows using pip
| A working transducer function using SWIG to convert C++ functions in python script.
|-
|-
| 17 June - 26 June
| 17 June - 26 June
| Week 4: Improving SWIG API.
| Week 4: Finishing up the windows installation of apy
|
|
* Complete windows release along with documentation and issuing unsolved bugs.
* Improving SWIG API with transducer function using python.
* Adding other functionalities as guided by mentors.
* Making the API more pythonistic.
| Release pip installation for windows
* Fixing the bugs in lttoolbox to make it ready for release.
* Evaluation by mentor.
| Releasing the SWIG API for lttoolbox.
|-
|-
| 27 June - 3 July
| 27 June - 3 July
| Week 5: Adding dictionary lookups
| Week 5: Setting database for dictionary lookups
|
|
* Improvement to apertium website by adding by adding dictionary lookup mode for single word translation that would give synonyms for the translations.
* Setting up the environment for improvement to apertium website by adding by adding dictionary lookup mode for single word translation that would give synonyms for the translations.
* Developing database for word table and probabilities(likelihood) of a synonym.
* Ranking the synonyms in order of their likelihood.
| A database with the word pairs and probabilities
* Improving some of the already existing code.
| Dictionary lookup functionality on the website.
|-
|-
| 4 July - 10 July
| 4 July - 10 July
| Week 6: Reliability visualization
| Week 6: Adding dictionary lookup in python
|
|
* Creating python backend for looking up the synonyms.
* Coloring the resulting translation depending on how reliable it is.
* Fixing bugs and working on release.
* Fixing the bugs in the implementation.
* Improving some of the already existing code.
| Reliability visualization ready for release.
| Working backend for dictionary lookup
|-
|-
| 11 July - 17 July
| 11 July - 17 July
| Week 7: Did you mean functionality
| Week 7: Creating dictionary lookup frontend
|
|
* Creating a proper frontend for the dictionary lookup functionality.
* Making language detection work in proper manner.
* Linking the dictionary lookup functionality with backend.
* Adding did you mean suggestions on the website if someone chooses unlikely language.
| A nice frontend for the dictionary lookup
| Functional language detection and did you mean feature.
|-
|-
| 18 July - 24 July
| 18 July - 24 July
| Week 8 : Integrating the functionalities in the website
| Week 8:Completing the dictionary lookup functionality
|
|
* Adding all the functionalities to the website.
* Adding all the functionalities to the website.
* Testing the proper working of all feature.
* Testing the proper working of all feature.
* Debugging the problems.
* Debugging the problems.
* Creating the documentation.
* Evaluation by mentor.
* Evaluation by mentor.
| Dictionary lookup feature added to the website.
| Improved Apertium website ready for deployment.
|-
|-
| 25 July - 31 July
| 25 July - 31 July
| Week 9: Bug Fixing 1
| Week 9: Improving language detection
|
|
* Setting up language detection for development.
* Debugging apertium-apy by solving new and old issues.
* Making language detection work in proper manner.
* Preparing documentation for apertium-apy.
| Report on issues in language detection
| Complete apertium-apy with documentation.
|-
|-
| 1 August - 7 August
| 1 August - 7 August
| Week 10: Bug Fixing 2
| Week 10: Adding did you mean function.
|
|
* Adding did you mean suggestions on the website if someone chooses unlikely language.
* Debugging lttoolbox.
* Creating documentation for lttoobox.
* Creating documentation for lttoobox.
| Complete lttoolbox implementation
| Complete lttoolbox implementation

Revision as of 20:27, 28 March 2019

Apertium GSoC 2019

Python API(APy) for Apertium

Contact Information

Name: Ayush Jain
E-mail address: ayushjainrksh@gmail.com
Alternate email: 17152@iiitu.ac.in
Mobile Number: +91 9045511472 (India)
IRC nick: ayushjain
Github: ayushjainrksh
Timezone: UTC +5.30

Why is it that you are interested in Apertium?

I belong to India, a country with 22 different spoken languages and 720 dialects used by a population of 1.3 billion. Being from a nation with vast languages and a student of Computer Science, I strive to solve the problems in language translation through my knowledge of programming and natural language processing. I like the concept of Apertium as an open source language translator as it solves the problem of language translation with ease. As I am a student of Computer Science, I have a keen interest in programming and development. I am proficient in web development and want to apply my knowledge of machine translation by contributing in Apertium. I have an urge to improve open source language translation with Apertium.

Which of the published tasks are you interested in? What do you plan to do?

I am planning to work on the either or both of the listed projects:

  1. Python API/library for Apertium
  2. Improvements to the Apertium website

As I am skilled in web development and have appropriate experience working on it, I decided to work on improving Apertium website by contributing to its API called APy and also improve the frontend of the website for better user experience along addition of new functionality.

Why Google and Apertium should sponsor it?

I have a proper knowledge and experience with development in Python, C++ and JavaScript. Moreover I worked on several projects including areas like web development, opencv, machine learning and natural language processing. The libraries of apertium are written in C++ which is low level language. As people prefer high level languages like python, C++ packages need to be made available by writing APIs for python using SWIG. SWIG allows C++ libraries to be used flexibly with scripting languages such as python. I also want to add complete windows support for Apertium.

How and who it will benefit in society?

As most people use Windows, adding support for windows will increase the user base of Apertium. A pip install for windows would make development process a lot easier for the developers. Adding certain capabilities of Apertium such as dictionary/synonym lookup and webpage translation to the website would help in increasing the users and expand the uses of Apertium.

Work Plan

Broad division

PHASES OBJECTIVES TIME
Community Bonding Period Getting to know all the mentors and getting acquainted with complete documentation of apertium. Acknowledge the problem statement and start working on a possible solution with focus on each detail. 6 May - 26 May
Phase 1 Working on apertium-apy and lttoolbox and making it available on windows. 27 May - 26 June
Phase 2 Working on improvements to apertium website and adding functionalities. 27 June - 26 July
Phase 3 Wrapping up the project with proper documentation and project report. 27 July - 25 August

Detailed plan

WEEK(PERIOD) BRIEF GOAL DESCRIPTION DELIVERABLE
6 May - 26 May Community Bonding Period
  • Experimenting with apertium modules for windows.
  • Developing the understanding of apertium-python package and its wrapper functions.
  • Writing some sample code to test various features.
  • Discussing detailed work flow with mentors.
Report for next week’s work plan.
27 May - 2 June Week 1 : Setting up apertium for windows
  • This includes setting the core modules of apertium on windows using apertium-python package on github.
  • Completing the installation script for windows in python.
An installable prototype for installing apertium on windows
3 June - 9 June Week 2 : Fixing bugs in windows installation
  • Fixing bugs stopping apertium to install on windows.
  • Testing the installation on various windows versions.
Test version for windows
10 June - 16 June Week 3: Apertium support for various platforms
  • Inspecting the apertium installation and its usage for Jupyter notebook and other such platforms.
  • Fixes various bugs that might occur.
  • Getting it ready for release for windows.
Complete installation of apertium for windows using pip
17 June - 26 June Week 4: Finishing up the windows installation of apy
  • Complete windows release along with documentation and issuing unsolved bugs.
  • Adding other functionalities as guided by mentors.
Release pip installation for windows
27 June - 3 July Week 5: Setting database for dictionary lookups
  • Setting up the environment for improvement to apertium website by adding by adding dictionary lookup mode for single word translation that would give synonyms for the translations.
  • Developing database for word table and probabilities(likelihood) of a synonym.
A database with the word pairs and probabilities
4 July - 10 July Week 6: Adding dictionary lookup in python
  • Creating python backend for looking up the synonyms.
  • Fixing the bugs in the implementation.
  • Improving some of the already existing code.
Working backend for dictionary lookup
11 July - 17 July Week 7: Creating dictionary lookup frontend
  • Creating a proper frontend for the dictionary lookup functionality.
  • Linking the dictionary lookup functionality with backend.
A nice frontend for the dictionary lookup
18 July - 24 July Week 8:Completing the dictionary lookup functionality
  • Adding all the functionalities to the website.
  • Testing the proper working of all feature.
  • Debugging the problems.
  • Creating the documentation.
  • Evaluation by mentor.
Dictionary lookup feature added to the website.
25 July - 31 July Week 9: Improving language detection
  • Setting up language detection for development.
  • Making language detection work in proper manner.
Report on issues in language detection
1 August - 7 August Week 10: Adding did you mean function.
  • Adding did you mean suggestions on the website if someone chooses unlikely language.
  • Creating documentation for lttoobox.
Complete lttoolbox implementation
8 August - 14 August Week 11: Bug Fixing 3
  • Fixing bugs in apertium website.
  • Adding improvements to apertium-html-tools.
  • Preparing the documentation for the website.
Making website release ready.
15 August - 21 August Week 12: Releasing Apertium website
  • Releasing the apertium website with changes.
  • Testing the released website and debugging the issues.
  • Updating Apertium Wiki.
  • Evaluation by mentor.
Release Apertium website for users.
22 August - 26 August Week 13: Wrapping up
  • Releasing the final productions of all the work
  • Going through all of the GSoC work and checking for bugs.
  • Completing all the changes suggested by the mentors
  • Cleaning up the documentation.
  • Reporting unresolved bugs.
  • Future preparation and planning.
Release final production.

Contribution to Apertium

I have been contributing to Apertium for quite a while now.

Here is a list of my contributions various Apertium contributions :

  • Issues :
    • apertium-html-tools = 1
    • apertium-apy = 2
  • Merges :
    • Apertium-apy = 1
  • Pull requests :
    • apertium-html-tools = 1 open.
    • Apertium-apy = 2 open

I have been working on the issues in html-tools and apertium-apy under the guidance of my mentor.

One of my pull request has been merged in which I have added an index page for localhost:2737 in apertium-apy along with unit test written in tornado.

I am working on 3 other pull requests which are still open and involves complex issues. It includes :

  • Finding langNames.db using pkg_resources.
  • Creating source TSV files for SQL database.
  • A responsive navbar with additional apertium features.

Here you can see my github timeline for contributions in Apertium :

Gitapertium1.png
Gitapertium2.png

Education

I am pursuing my degree of Bachelor of Technology in Computer Science Engineering at IIIT Una, India. I am a student of second year enrolled in a four year course of CSE. I have completed my intermediate with 95.2% marks with computer science as additional subject.

Experience

I have been studying Computer Science for 6 years now, with working experience in core programming languages such as Java, C++, Python, Javascript. I have been a part of several hackathons at college level. I am proficient in competitive programming and algorithm development. I have worked on several projects and build several professional websites many of which can be found on Github. I have been contributing to open source for quite a while now and have worked on several machine learning models in Python and R. Here is my github timeline :

Gittimeline.png

Non-summer of code plans

Google Summer of Code lies during the summer vacations of the college. I will be able to devote 40 hours per week and more if necessary to Apertium during summer of code. I might have a small vacation plan but that lies in between the Community bonding period and I will be able to manage my work accordingly. I also acknowledge that GSOC is my foremost priority and I won’t be working on any other internship, training or classes if selected for GSOC.

Links

Linkedin : View Profile
Github : View Contributions
CV : View CV