Week 6 Day 4 & 5: Mid-term Evaluation and NeWiktionary Development Cntd…

Mid-term Evaluation

On Day 4, I had a mid-term evaluation of my work till date for which my manager, Lorraine went through the evaluation forms written by my mentor, David, and me regarding the work goals, accomplishments, and future goals for the remaining internship period. It was great to hear reviews from my mentor regarding my leadership, communication, coding skills, and work ethic styles.

So far, this internship journey has been a great learning experience for me. I have been learning so many new skills such as blog writing, creating my own website and registering the domain name, coding in NLP++, writing wikitext and contributing in Wiktionary, and so on.

The lead of “Intern Lunch and Chat” session

Apart from this, I proposed an idea on how to make all interns interact and have a nice time together during the “Intern Lunch and Chat” session that happens weekly on Thursdays. I was so happy that my manager liked my idea a lot and made me the lead of all interns to manage and lead the second half of the meeting time (the first half period is when invited speakers either share their experience and work they do or involve in QA lead by Lorraine). For this, I had to come up with a game idea for the first week of the “Intern Lunch and Chat” session which provide an opportunity to play in teams and use problem-solving skills. For the first week, I chose Skribbl to play together and I was happy to know that everyone involved in it and enjoyed the game. From next week, I ask interns if anyone wants to volunteer to lead and come up with a game idea to play together. I also remind them a day before the meeting to see if they are prepared to lead the meeting the next day and to make sure if they could still attend the meeting and lead.

NeWiktionary Development Continuation

On the day 4, I continued to work to further parse wikitext by building rules to recognize definitions, examples, synonyms, derived terms, and translation in English and built analyzer sequences for each of these contents of the word. After parsing them, creating node for each of the above mentioned content, I learned to build rule to group part of speech, definitions, and examples together under part of speech zone and definition zone.

On the day 5, I learned to import a library pass called “kbfuncs” that includes all the built-in functions needed to build knowledge base rules. I used “makeconcept” and “MakeCountCon” built-in functions to create knowledge base concepts and count all concept if there are more than one. The codes that I wrote to build rules for “kbZones” are as follows:

@NODES _ROOT

@POST

N(“pronunciation”) = makeconcept(G(“word”),”pronunciation”);

@RULES

_xNIL <-

    _pronunciations ### (1)

    @@

@POST

N(“synonym”) = makeconcept(G(“word”),”synonym”);

@RULES

_xNIL <-

    _synonyms   ### (1)

    @@

@POST

N(“pos”) = MakeCountCon(G(“word”),”pos”);

@RULES

_xNIL <-

    _posZone    ### (1)

    @@

@POST

N(“derived Term”) = makeconcept(G(“word”),”derived Term”);

@RULES

_xNIL <-

    _derivedTerms   ### (1)

    @@

@POST

N(“translation”) = makeconcept(G(“word”),”translation”);

@RULES

_xNIL <-

    _translations   ### (1)

    @@

As a result, NLP++ built knowledge in the head in the following pattern:

words
  वृद्धि: 
    pos=[2]
    pronunciation
    pos1: 
      pos=[नाम]
    pos2: 
      pos=[क्रिया]
    synonym
    derived Term
    translation

My next step will be to continue building the knowledge base so that it will have all the content knowledge about a particular word. Since all the input file has the same pattern of content entry, these knowledge base analyzer sequences will work on the rest of the input files as well.

Leave a comment