We started working on project because we wanted to create convenient service to help people working with text. Sometime we make mistakes in grammar but we can observe that not in time. Or some people have problem with type text - this is people with aphasia. These topics lied to the main idea of our service.
What it does
Our service allows people to type key words/sentence and then get the text, that corresponds to typed data in the best way. For example if you type:
Canada leader Justin Trudeau
you will get (you can try it on our website - click):
The leader of Canada is called, Justin Trudeau.
So, our service helps people to create grammatically correct sentences. But it is not the last achievement of our service. Another example corresponds to people with aphasia disease. We know that people with this disease sometime type sentence that has no meaning for ordinary people. Our service is also solve this task. For example if you type:
Honda create company German
As a result you will get:
Honda was created by German.
It looks really competitive. Sometime you have mistakes like:
"wokers" instead of "workers". Our service is also solve this task.
How we built it
To simple work on site and iOS app we built API, what makes main work. Detail of API: https://github.com/GermanZvezdin/Grammakey. Detail of GrammaKey site: https://github.com/take2make/GrammaKey_Site.
Principe of work: user go on website or iOS app, type key sentence and after that press generate button and get result text.
To generate text in core of API we have used NLP process. Before that we have trained model based on WebNLG Challenge 2020 data: https://webnlg-challenge.loria.fr/challenge_2020/.
Challenges we ran into
We challenged with time of processing data on site and mobile app. To solve this problem we developed site and API on GO language.
Also then site is waiting result text from API we wrote function that wait result in asynchronous way.
Into API happens transfer between GO and Python. This transfer depends on way that we execute Python code, that generate text. Firstly, we did it in direct way, but then generation text was very slow.
Accomplishments that we're proud of
We are proud of structure of our project. We developed API that is easy to use to everybody. It makes our project cross-platform. It easy to use in web-site and SWIFT language. In future it helps to grow our project to many users.
Also we connected Python and GO by using sockets, it makes transfer between them faster.
What we learned
We learned new language GO, that is more powerful to develop site and Restful-API. We learned how to connect GO and Python in the fast way. We learned new package - transformers in Python that makes easier to use NLP models.
What's next for GrammaKey
Future for GrammaKey is to push API and site on server and get it to everybody in the World.
Yet we have some problems with text generation - sometime the result text has another meaning. It can be solved by using new corpus of data, on which we train own model.
Make possible to record voice and after that get correct text with understandable meaning.