I am currently working on a project where I need to create possible answers to WH question based on a given sentence.
Example sentence is:
Anna went to the store.
I need to create possible answers to the following questions.
Who went to the store?
Where did ana go?
I had already implemented the POST-Tagging of the words and I now know the Part of Speech of the word.
I had difficulty on determining what type of noun is the word if it is a noun so I can create a template for my answer.
Example is:
Anna - noun - person: possible answer to question who.
Store - noun - place: possible answer to question where.
I want to implement this using java
You should not try to infer possible questions and their answers from the nouns present in a sentence. Instead, you should infer the type of questions you can ask from the activity described by the verb. In your example, the system should infer that the activity of going requires a subject who goes (possible answer to the “who” question), a place where the subject goes (possible answer to the “where to” question) as well as the time when the subject went there (possible answer to the “when” question) and potentially more (from where? with whom? by what means? which way? etc). Then it should check which answers are provided in the question. In your example, answers to “who” and “where” are provided, but “when” is not. In other words, you should have a mapping from verbs to questions that make sense for each verb.
Then for each question applicable to the verb you should store prepositions that are used to indicate that answer in a sentence. For example, the answer to the “where to” question is often preceded by “to” and an answer to “when” question is often preceded by “at” or “on”. Note that subject (here answer to the “who” question) needs special treatment. Also, some verbs can be immediately followed by an object without prepositions and your verb dataset should indicate the question to which they constitute an answer. For example the verb “to enter” can be followed by an object which answer the “where/what” question as in “Anna entered the room”. Also, some nouns are exceptions and are never preceded by a preposition. For example “home” as in “Anna went home”. You need to treat these specially as well. Another thing to watch out for are idiomatic expressions like “Anna went to great lengths”. Again, special treatment is required.
Generally, nouns in English do not have enough structure to allow you to determine what type of thing (e.g. a place, an object, a person, a concept etc) they denote. You would need to have a large dataset that breaks up all the words known to the system into different categories. If you do use a noun set like this, it should have a supporting role to increase system’s accuracy.
Relying on verbs and prepositions is far more flexible as it allows the system to handle unknown expressions. For example, someone might say “Anna went to Bob”, but “Bob” is not a place. System that infers the role of each element from verb and preposition still handles this situation and properly treats “Bob” as the right answer for the “where to” question.