Machine learning: which algorithm fits for questions answering -
i want build ml program talks user , inputs user. ml program analyze input data(keywords) predict best solution.
so, looking @ ai application needs sort of machine intelligence processing natural language. let language of choice here english. there many things considered before building such system.
- dependency parsing
- word sense disambiguation
- verb sense disambiguation
- coreference resolution
- semantic role labelling
- universe of knowledge.
in brief need build above essential modules before can generate response. need decide kind of problem working on? open domain or closed domain problem, meaning scope of knowledge of application. example: google open domain problem can practically take possible input. applications pertain particular task automating food orders in app etc scope of questions can asked limited.
once decided, need parse input sentence , dependency parsing way go. can use stanford core nlp suite achieve of nlp tasks mentioned above.
once input sentence parsed , have subjects, objects, etc time disambiguate words in sentence particular word can have different meanings.
then disambiguate verb meaning identifying type of verb (like return mean going place or giving )
then need resolve coreference resolution meaning mapping nouns , pronouns , other entities in given context. example: name john. work @ abc company.
here in second sentence refers john. helps in answering questions john work. since john used in first sentence , work mentioned in second sentence coreference resolution helps map them together.
the next task @ hand semantic role labelling, means labelling arguments in sentence respect each of verb. example: john killed mary. here verb kill, john , mary arguments of verb kill. john takes role a0 , mary role a1. definitions of these roles each verb mentioned in huge frame , argument annotation framework created nlp community. here a0 means person killed, a1 means person killed. once have identified a0 , a1 definition of kill frame , return a0 killer , a1 victim.
another important task @ hand identify when system must respond answer. need know if given sentence declarative or assertive sentence or interrogative sentence. can check seeing if input sentence ends question mark.
now answer question: let input application is: input 1: john killed mary. assertive sentence store , process mentioned above. next input is:
input 2: killed mary?
this interrogative sentence need come reply or response.
now find semantic role labels of input 1 , input 2 , return word of input 1 matches argument of in sentence 2. here in case labeled a0 , john labeled a0, return john.
most of nlp modules mentioned can directly implemented using stanford core nlp if want implement algorithms on own can go through recent publications in emnlp, nips, icml, conll etc understand them better , implement 1 best suits you.
good luck !
Comments
Post a Comment