commit 15f0a36eeff42c0ad58372c2a3eea667b22122d1 Author: Tanmai Khanna Date: Fri Jul 12 20:22:11 2019 +0530 Converted Parsing to Class | Added Important Parameters in External XML File | Parsing for Parameters diff --git a/src/parse_markables.h b/src/parse_markables.h deleted file mode 100644 index c7cc2b3..0000000 --- a/src/parse_markables.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _PARSEMARKABLES_ -#define _PARSEMARKABLES_ - -using namespace std; - -static void parseDoc(char *docname); -void parseCats (xmlDocPtr doc, xmlNodePtr cur); -void parseCatItem (xmlDocPtr doc, xmlNodePtr cur); -void parseMarkables (xmlDocPtr doc, xmlNodePtr cur); -void parsePatterns (xmlDocPtr doc, xmlNodePtr cur); -void parsePatternItem (xmlDocPtr doc, xmlNodePtr cur); - -#endif \ No newline at end of file diff --git a/src/parse_markables.cc b/src/parse_ref.cc similarity index 61% rename from src/parse_markables.cc rename to src/parse_ref.cc index b5f3113..18b0eea 100644 --- a/src/parse_markables.cc +++ b/src/parse_ref.cc @@ -4,11 +4,53 @@ #include #include -#include "parse_markables.h" +#include "parse_ref.h" -// g++ parse_markables.cc -I /opt/local/include/libxml2/ -L /usr/lib -lxml2 -lz -lpthread -lm +// g++ parse_ref.cc -I /opt/local/include/libxml2/ -L /usr/lib -lxml2 -lz -lpthread -lm -void parseCatItem (xmlDocPtr doc, xmlNodePtr cur) +void ParseRef::parseParameterItem (xmlDocPtr doc, xmlNodePtr cur) +{ + xmlChar *Attr; + cur = cur->xmlChildrenNode; + + while (cur != NULL) + { + if ((!xmlStrcmp(cur->name, (const xmlChar *)"parameter-item"))) + { + Attr = xmlGetProp(cur, (const xmlChar *)"tags"); + printf("ParameterItem: %s\n", Attr); + xmlFree(Attr); + + //key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); + } + + cur = cur->next; + } + return; +} + +void ParseRef::parseParameters (xmlDocPtr doc, xmlNodePtr cur) +{ + xmlChar *Attr; + cur = cur->xmlChildrenNode; + + while (cur != NULL) + { + if ((!xmlStrcmp(cur->name, (const xmlChar *)"def-parameter"))) + { + Attr = xmlGetProp(cur, (const xmlChar *)"n"); + printf("ParameterName: %s\n", Attr); + xmlFree(Attr); + + parseParameterItem(doc,cur); + } + + cur = cur->next; + } + return; +} + +void ParseRef::parseCatItem (xmlDocPtr doc, xmlNodePtr cur) { xmlChar *Attr; cur = cur->xmlChildrenNode; @@ -29,7 +71,7 @@ void parseCatItem (xmlDocPtr doc, xmlNodePtr cur) return; } -void parseCats (xmlDocPtr doc, xmlNodePtr cur) +void ParseRef::parseCats (xmlDocPtr doc, xmlNodePtr cur) { xmlChar *Attr; cur = cur->xmlChildrenNode; @@ -50,7 +92,7 @@ void parseCats (xmlDocPtr doc, xmlNodePtr cur) return; } -void parsePatternItem (xmlDocPtr doc, xmlNodePtr cur) +void ParseRef::parsePatternItem (xmlDocPtr doc, xmlNodePtr cur) { xmlChar *Attr; cur = cur->xmlChildrenNode; @@ -76,7 +118,7 @@ void parsePatternItem (xmlDocPtr doc, xmlNodePtr cur) return; } -void parsePatterns (xmlDocPtr doc, xmlNodePtr cur) +void ParseRef::parsePatterns (xmlDocPtr doc, xmlNodePtr cur) { cur = cur->xmlChildrenNode; @@ -90,7 +132,7 @@ void parsePatterns (xmlDocPtr doc, xmlNodePtr cur) return; } -void parseMarkables (xmlDocPtr doc, xmlNodePtr cur) +void ParseRef::parseMarkables (xmlDocPtr doc, xmlNodePtr cur) { xmlChar *Attr; cur = cur->xmlChildrenNode; @@ -111,7 +153,7 @@ void parseMarkables (xmlDocPtr doc, xmlNodePtr cur) return; } -static void parseDoc(char *docname) +void ParseRef::parseDoc(char *docname) { xmlDocPtr doc; xmlNodePtr cur; @@ -133,9 +175,9 @@ static void parseDoc(char *docname) return; } - if (xmlStrcmp(cur->name, (const xmlChar *) "anaphora")) + if (xmlStrcmp(cur->name, (const xmlChar *) "ref")) { - fprintf(stderr,"Document of the wrong type! Root node should be anaphora.\n"); + fprintf(stderr,"Document of the wrong type! Root node should be ref.\n"); xmlFreeDoc(doc); return; } @@ -143,7 +185,12 @@ static void parseDoc(char *docname) cur = cur->xmlChildrenNode; while (cur != NULL) { - if ((!xmlStrcmp(cur->name, (const xmlChar *)"section-def-cats"))) + if ((!xmlStrcmp(cur->name, (const xmlChar *)"section-parameters"))) + { + parseParameters (doc, cur); + } + + else if ((!xmlStrcmp(cur->name, (const xmlChar *)"section-def-cats"))) { parseCats (doc, cur); } @@ -171,7 +218,10 @@ int main(int argc, char **argv) } docname = argv[1]; - parseDoc (docname); + + ParseRef ref; + + ref.parseDoc(docname); return (1); } \ No newline at end of file diff --git a/src/parse_ref.h b/src/parse_ref.h new file mode 100644 index 0000000..74be19d --- /dev/null +++ b/src/parse_ref.h @@ -0,0 +1,21 @@ +#ifndef _PARSEREF_ +#define _PARSEREF_ + +using namespace std; + +class ParseRef +{ +public: + void parseDoc(char *docname); + void parseParameters (xmlDocPtr doc, xmlNodePtr cur); + void parseParameterItem (xmlDocPtr doc, xmlNodePtr cur); + + void parseCats (xmlDocPtr doc, xmlNodePtr cur); + void parseCatItem (xmlDocPtr doc, xmlNodePtr cur); + + void parseMarkables (xmlDocPtr doc, xmlNodePtr cur); + void parsePatterns (xmlDocPtr doc, xmlNodePtr cur); + void parsePatternItem (xmlDocPtr doc, xmlNodePtr cur); +}; + +#endif \ No newline at end of file diff --git a/src/score.cc b/src/score.cc index 22de413..7b3962f 100644 --- a/src/score.cc +++ b/src/score.cc @@ -166,9 +166,9 @@ wstring Scoring::get_antecedent() for(vector::reverse_iterator it=antecedent_list.rbegin();it!=antecedent_list.rend();++it) //read it in reverse so that we read from furthest to nearest { - cout << "\n" << (*it).LU.id << ": "; - wcout << (*it).LU.wordform; - cout << " : " << (*it).score << "\n"; + //cout << "\n" << (*it).LU.id << ": "; + //wcout << (*it).LU.wordform; + //cout << " : " << (*it).score << "\n"; if((*it).score >= final_antecedent.score) //picking the highest scored and latest added (most recent) antecedent final_antecedent = (*it);