YOUR PROJECT TITLE

Grade Search

Description:

First of all, I would like to explain the contents of the project. The project created this time is a web application and can be used by opening it in a browser. When you open it with a browser, an input form appears, so enter English within 300 characters there. There is a place where the number of characters entered below appears in real time, so it is good to enter English while referring to that. When you submit the form, a percentage showing how many English words you have learned by each grade is included in the English sentence will be displayed. Moving further down, a table appears that outputs English words that may not have been learned in each grade. A hyperlink that displays the Japanese translation is provided nearby, so that even if there are English words that you may not have learned by looking at it, you can read the entered English easily. Next, I would like to explain the contents and functions of each file created for the project. The main file is app.py. This time, I wanted to use Flask, which I learned in CS50, as the framework, so I used Python files as the main. When accessed by root, a simple html file with an input form is displayed. When you write English in the input form and send it, it moves to the /grade location, and the html file that displays the input form and the analysis result of the English text you just sent is displayed. The results of the analysis show the percentage of English words learned by students in each grade that are included in the English sentences. If you move further down, English words that students in each grade do not learn are displayed with hyperlinks that display Japanese translations. By referring to this word list, we believe that it will be easier for users to read English sentences containing English words that they have never learned before. Next, I will explain the processing contents performed in app.py. First, run a C language program called 7-2 that removes extraneous elements such as blanks, periods, and parentheses from English sentences and inserts a new line for each word and outputs it to a text file. When executing the c language executable file, it was executed using a module called subprocess that can use terminal commands. When the text file with line breaks for each word is completed, the next step is to examine the root form of each word, and if there are words that are not in the original form such as the past tense or the progressive form, convert them to the original word. The reason for doing this work is that the list of words referred to when judging whether a word is learned in each grade is posted in its original form. Therefore, I searched for the original form of each English word. There was a problem during development that the processing time was enormous because each word was scraped, but by using a module that enables multi-thread processing called ThreadPoolExecutor, processing can be performed with a maximum of 8 threads and the processing time is reduced. After correcting all the words to their original forms, it is judged whether or not they are words learned in each grade. The program used at this time is a C language program called speller. This program is compiled from three programs called speller.c, dictionary.c, and dictionary.h. The three programs are modifications of the speller program used in the CS50. This concludes the description of the contents and functions of each file created for the project.