Verb Conjugator
From dandi08
Our idea for the verb conjugation project is to write a python program which will conjugate basic verbs. We will start with English,to make sure that we know what we're doing.
Contents |
[edit] Project Info
Our goal is currently to build an engine in python that will conjugate a verb entered into it. Depending how far we get in the process we will be conjugating both regular and irregular verbs.
Potential Goals:
- Prompts users for both the pronoun or proper noun and the verb to conjugate it with.
- Properly conjugate the irregular verbs so they make sense.
- Add support for conjugating in another language, such as Spanish.
- Ruling the world.
[edit] Project Proposal
Problem Addressed by the Project :
Verb conjugation is something that as speakers of English, we do every day, all of the time. Verb conjugation is so automatic for us that we don’t even think about it. We know, from years of experience that saying “I are and you am” is incorrect, but saying “I am and you are” is perfectly fine. These ways of putting words together and rules that we have memorized are an integral part of our language, but are rarely discussed. Our group proposes to create a python program which conjugates verbs for the user. This project could be potentially useful for both speakers of English and for speakers of other languages. Verb conjugation is a key concept in English and there are a variety of possibilities for the uses of, and thus, the reasons to create this program.
Our project could potentially help English speakers to better understand their own language. Due to the fact that verb conjugation is done automatically, English speakers rarely pause to consider how it works or how complicated it really is. Our verb conjugation program would allow the user to see the full English conjugation of the verb that they have entered. Seeing the conjugation of the verbs would make it clear to the user exactly what conjugation is and how the forms of verbs change for varying subjects. From these conjugations, a speaker of English could understand what conjugation is, see how it works, see the rules that English verb conjugation follows, see the trends, and hopefully, better understand their own language.
This verb conjugation engine could also be used as a tool in foreign language instruction. For English as a Second Language students, this verb conjugation program would provide an opportunity to see how verb conjugation works in English. Our program could help ESL students to learn English verbs and conjugate them correctly. Furthermore, English speakers learning a foreign language could also benefit from this program. When learning a foreign language, it is helpful to have grammatical concepts explained in one’s own language as well as those corresponding in the language being learned.
Relationship of the Project to DandI program themes:
Our assignment is to create a program that will automate verb conjugation for regular and irregular verbs. The program will be built in Python and prompt the user for a verb as input. After being given a verb the program will decide if it is a regular or irregular verb and how to proceed. Then the program will use defined rules to produce the conjugated forms of the verb in past, present and future tense as well for you, them, he, she and I.
This assignment will use all of the Python knowledge we have been given including file access, flow of control, user input and string manipulation. This assignment will also use our linguistic knowledge in order to define rules for verb conjugation, especially for irregular verbs.
The Project Itself:
To reach our goal of creating a verb conjugation engine with Python we will be employing a variety of tools. We intend to go about creating our primary deliverable (a verb conjugation engine) by using the knowledge we have gained from the python section of class as well as from additional research into python on the web. We intend to create a verb conjugation engine that in its simplest form will conjugate the infinitive form of a regular verb. We intend to use WordNet to check the tokens inputted to ensure that the user inputs a verb.
The first extension we have planned for our Verb Conjugation engine is to include irregular verbs. We will also investigate extending the program to include functionality for conjugating Spanish or French verbs. We will make these verb congujators exist within one program by having a main() method that gives the option to call a spanishMain(), englishMain(), frenchMain(), etc. Additionally, we would like to see if we could get a version of this program to prompt for the pronoun or proper noun and the verb to conjugate it with. If that gets completed successfully we will work on getting the program to take a series of words and create a legal sentence out of them. This section is unlikely to be completed though as it is by far the most difficult and problematic portion of this program.
In addition to making a verb conjugation engine in Python we will work as a group to complete all the required assignments and build an interesting and informative presentation for the rest of the Data and Information program. Most of the work we do will be towards the goal of creating the Python program but we intend to devote effort towards the required deliverables. To ensure completion of our goals, we will complete necessary research on verbs from the internet, work on programming the basic verb conjugation engine and then on adding additional functionality and resolving bugs that present themselves. In addition to this we will complete all required portions of the project.
What you (think you) will learn from doing the project:
We will be able to apply a lot of what we’re learning in class when working on our project. Since we are planning to write a program in Python, we will be using and building upon the programming skills we’ve learned so far. This will be a larger program than what we’ve been writing in labs, so it will be interesting to see what problems we run into and to figure out how to solve them.
We will also be building on our linguistic knowledge with this project. We’ll be examining verbs in English (and possibly in other languages, depending on what direction we end up going in), so we’ll mostly be looking at grammar rules and syntax. We may have to look a bit more into traditionally “correct” grammar structures in order to write our program, as that’s not a big focus in this class. We may end up writing the program to conjugate verbs into various tenses, so it’s likely we’ll have to investigate the names and rules for various English verb tenses, as well.
It’s difficult to say specifically what we are going to learn by working on this project, since we are just beginning, but we think it will deepen and expand our knowledge of both Python and certain linguistic themes.
[edit] Project Plan
- Proposal Revision?
We are not planning to revise our project proposal. We’re going to take the suggestions into consideration, and perhaps modify a few of our goals, but overall our project is staying the same.
- Overall Project Responsibilities:
1. Responsibility for handing in project proposal and plan, and final report, and keeping track of who is writing what, and who is compiling which documents: Lindsay and Addie 2. Running the meetings and posting minutes: We’ll trade off. Right now, Addie. 3. Overall program design or documentation (keeping track of inputs and outputs for each function, and a statement of what it will do): Jeff, Jeremy 4. User Interface design (doing the design an dmockups): Jeremy 5. Program Testing: everyone 6. Research: everyone 7. Coding: Jeff and Jeremy will be doing the main coding, but we’ll all work on it.
- Task Assignments for the next two weeks:
We need to do a lot more research on verbs. Specifically, we need to make sure we fully understand the verb tenses we are planning to include in our program, and to gather a list of irregular verbs and their conjugation rules. Once this is done, we will be able to add a lot more to our code. We also need to do a lot of testing of the program to work out bugs and catch any irregular rules we may have missed. All of us will be working on program testing.
- A general schedule for weeks 7, 8, 9 & 10:
We will continue to build on the tasks we’re planning to work on for the next two weeks. After doing more research on verbs, most of our work is going to be project testing and refinement.
- Details for the next two weeks:
A simpler task we wish to accomplish in the next two weeks is to add wordnet to our program, and use it to identify whether the user input is a verb or not. Other than that, we just have a lot of ongoing work on various parts of the project. (Irregular verb look up, testing, fixing bugs, etc).
- Minimal, optimal, and future project achievements:
Minimal project achievements: A working python program that accepts user input in the form of an English infinitive verbs, and outputs conjugated forms of the verb for each personal pronoun and in at least three tenses. We likely won’t be able to write in rules for all irregular verbs, but we will put in as many as we can.
Optimal project achievements: 1 Asking the user to specify which pronoun (or name) and tense they would like the program to conjugate for. 2 Writing rules for most irregular verbs. 3 Incorporating verb tense definitions or other useful bits of information to help the user learn about the English language. 4 Play around with adding verb conjugation for other languages (French and/or Spanish), probably only in the present tense.
Future project achievements: 1 Adding some sort of graphic to the program. 2 Having the user input a subject, verb and object, which the program would output as a sentence. 3 More work with foreign languages.
[edit] Project Minutes
11/10/2008:
- Discussed where the project is:
1. Have a mostly beta program for conjugating regular verbs.
- Where the project is going:
1. Need to work on irregular verb conjugation. 2. Need to build Spanish and French versions. 3. Need to bug test. 4. Need to find exceptions to the normal verb rules. 5. Need to make the program use wordnet to ensure that a verb is a verb
- Discussed methods of communication.
- Next Meeting
- 12:31pm after Linguistics.
11/13/08 - 10:30am:
All group memebers were present - Jeff took some notes and Addie was in charge of minutes.
- Discussed feedback on our Project Proposal:
1. Considered some of the suggestions - like adding a graphic, or looking at a UI. 2. Decided not to refine our proposal, but to see which suggestions we can incorporate.
- Discussed where the project is and what needs to be done:
1. We still have a basic, untested beta program, but a few bugs have been fixed since last time. 2. We need to do a lot more work on verbs. 3. We need to make the program check if a word is a verb, with wordnet. 4. We need to make the program check if the word input is an irregular verb. 5. Depending on how far we get, we may add a graphic or incorporate other languages. 6. Discussed what sort of research we might need to be doing outside of the actual programming. 7. Talked about how we should be preparing for the final paper, but we were unsure on the details of that part of the project.
- Discussed Project Plan and assigned tasks to each memeber.
- Agenda for next meeting:
1. Check in and see where everybody is. 2. Share any research we may have done.
- Before the next meeting, we will:
1. Turn in project plan & minutes (Addie) 2. Do some verb research (everyone) 3. Work on refining the program (Jeff, Jeremy)
- Next meeting will be on Monday 11/17 after seminar.
Date & Time – November 18th, 2008 at 2 o’clock Those Present – Addie, Jeff, Jeremy and Lindsay (notetaker) Notes on Discussion –
Irregular verbs
- What needs to be done: go through a list of irregular verbs by hand in order to implement them into the program
- Jeff found a website (www.gsu.edu) that has a complete list of verb tenses and a list of irregular verbs, he emailed the link to the rest of us at this time
- wikipedia also has a table of English conjugation forms, could be useful in expanding the program to include other forms
- need to find specific rules for conjugation of verbs
- we need to incorporate all of this information into our core program
Question: what is our paper going to be about?
- we want to know the requirements of the paper so we can start work on it
- we agreed to ask Judy during our meeting later
Can we expand our research into how our program could be used? and conjugation in other languages?
- check in about the core program
- currently working on trying to redo print statements so they don’t take as much code
- wordnet is now being implemented in the program
- more about verb conjugation rules
- www.abacus-es.com has a list of rules
- this link was emailed to all group members
- we went through the rules to better understand them, the only one that was complex was the rule about when the last letter is doubled in the past tense. If the last syllable is a consonant, and the stress syllable of the word, then it will be doubled. However, we also found that this rule also requires the structure of the word to be single vowel, single consonant at the end of the word. If there are two vowels, two consonants or an x or a w at the end, the last letter will not double.
- ex. appear to appeared, jump to jumped, sew to sewed don’t double, but zip to zipped, bag to bagged, star to starred, etc, do work
- color and humor will have to be exceptions
- interesting note--they were both originally spelled with a double vowel
Does word net have anything about syllables? And if so, does it have anything about stressed syllables?
- we need to understand and incorporate these verb conjugation rules into the program
- other things to work on
- still need to design a better user interface
Communication:
- Jeff explained the system he has set up on his website to further enable project group communication and gave us our usernames and passwords to access it
- meeting with Rachel notes:
- possibly use just present and past
- currently uses present progressive
- look for groups of irregular verbs
- morphology books and sites should have irregular verb groupings
- we have a prototype
Ways to take the project further:
- implement irregular verbs in the program
- add French and Spanish to the program
- get the program to work with pronouns (with plurals and singular, etc) and matches it with correct conjugation, input noun and verb, instead of just the verb
- get the program to a point where it can handle present progressive, past perfect, etc
- edu sites are a great resource for us
Meeting with Judy notes:
Questions asked:
Q: Does WordNet have a way to detect syllables? And if so, does it have a way to detect if the syllable is stressed? A: Judy wasn’t sure, but suggested that we talk with the Haiku group because they have found something about syllables in WordNet.
Q: What will the final paper involve? A:
- add to project proposal
- add references
- add description of the program and how it works
- table of rules and where they came from
- research other verb conjugation programs
- speculate on what we could do in the future with our program
Suggestions:
- as we find rules to use in the program, keep track of the test cases for future use
- we also might want to talk to the web of words group because they are also working with verbs
Agenda for Next Meeting –
- further expand the program by implementing the verb conjugation rules
- deal with irregular verbs
- more research
- try to find a grouping of irregular verb patterns
- start work on the paper
- look into using other languages with the program
To Do Before Next Meeting –
- Addie: getting started on the paper, testing of the program, expanding into other languages, research
- Lindsay: getting started on the paper, testing of the program, expanding into other languages, research
- Jeremy: finalizing UI mock up, implementing conjugation rules
- Jeff: streamlining program, adding rules
Next Meeting –
- We will communicate over email for the next week and then, depending on progress and necessity, we will set another meeting date.
Date & Time – December 2nd, 2008 at 1:45 Those Present – Jeff, Jeremy, Lindsay and Addie (notetaker) Notes on Discussion –
goal of the meeting:
- find out where we are & discuss what needs to be done
user interface:
- needs to get (verb) input from the user
- needs to display boxes for past, present & past participle verbs
irregular verb rules:
- Lindsay & Addie will continue to write pseudocode for verb rules
- Jeff & Jeremy will turn the pseudocode into actual code
learn how to identify syllables in verbs:
- consulted with the haiku group
- got a list of words with syllable notation
- need to examine the list more closely to see if it will work for us
- need to implement the list if it suits our purpose
overall what needs to be done?
- we have a working program that needs to be tested and strengthened
- finalize user interface
- finalize verb rules
- look for other verb conjugators online to compare
- plan our presentation
next meeting will be on Thursday, December 4th
Date & Time – December 4th, 2008 at 9:30 Those Present – Addie, Jeff, Jeremy and Lindsay (notetaker) Notes on Discussion –
goals of the meeting:
- write presentation and paper outlines
- check in with everyone about how their piece of the project is going
- figure out what still needs to be done
presentation outline (also submitted separately):
- introduction/overview
1. what we are and what we did for our project 2. what our program does and how it works 3. uses of the program (teaching tool, ESL students)
- rules of verb conjugation
1. overview of the rules we implemented in our program 2. discuss unconscious rules
- examples
1. include both simple and complex examples
- discuss the source code
- product demonstration
1. class participation 2. examples
- conclusion
1. wrap things up 2. what we learned
- questions
- we will need to figure out how to fit as much as possible into the presentation, however, it is possible that all of the things we want to discuss will put us over 15 minutes
paper outline (also submitted separately):
- intro
- reasons for our project, what problems out program addresses
- how our project relates to the class and uses what we have learned
- what our project is, how our program works
1. the program itself 2. project deliverables
- how we divided the project, what we each did
- what we think of our final project, how we would change anything
- what we learned through this project, what we will take away from it
- how we found our information, references
discussed the online dictionary text file that we got from the haiku group
- not exhaustive and also includes many strange words, such as proper nouns
- do we want to use it?
1. not sure yet, but we’ll use it at least for now, until we find another option
- has emphasis for syllables, which is what we want
- 110,000 entries
1. even zzzz is an entry though, so there are some strange ones
- during our meeting, we tried to find a better dictionary online
- talked to Amy about the text file and whether she had any suggestions about something else to use
what we have left to do before our presentation on Tuesday:
- finish the UI
- write out the rest of the verb rules in pseudocode
- implement those rules into the program
- prepare our presentation
1. powerpoint and any other necessary visuals 2. who is going to say what 3. examples 4. write the paper 5. make sure that everything has their annotated sources
[edit] Project Group
The project group is: