NTCIR_QALab_Essay_QA.Essay_exam_reader.xml_reader_nlp_ner C# (CSharp) Method

xml_reader_nlp_ner() public method

public xml_reader_nlp_ner ( XmlNode nlp_token ) : XmlNode
nlp_token System.Xml.XmlNode
return System.Xml.XmlNode
        public XmlNode xml_reader_nlp_ner(XmlNode nlp_token)
        {
            XmlNode nlp_ner = nlp_token.SelectSingleNode("/NER");

            return nlp_ner;
        }

Usage Example

        //經由nlp分析出的ner將單字組合為有意義的key組裝
        private List<string> ner(string path)
        {
            List<string> return_key = new List<string>();

            Essay_exam_reader xml_reader = new Essay_exam_reader();
            XmlDocument xmldocument = new XmlDocument();

            //讀出Relay.xml中nlp分析結果
            XmlNodeList nlp_tokens = xml_reader.xml_reader_nlp(path);

            string selectKey = "";
            Boolean iskey = true;

            foreach (XmlNode nlp_token in nlp_tokens)
            {
                //將nlpNode轉換為本地物件
                XmlNode local_nlp_token = xmldocument.ImportNode(nlp_token, true);

                //取得nlp_token中word資料
                XmlNode nlp_word = xml_reader.xml_reader_nlp_word(local_nlp_token);

                //取得nlp_token中ner資料
                XmlNode nlp_ner = xml_reader.xml_reader_nlp_ner(local_nlp_token);

                //組合key
                if (nlp_ner.InnerText == "DATE")
                {
                    if (iskey == true)
                    {
                        selectKey += ("D/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else if (nlp_ner.InnerText == "LOCATION")
                {
                    if (iskey == true)
                    {
                        selectKey += ("X/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else if (nlp_ner.InnerText == "ORGANIZATION")
                {
                    if (iskey == true)
                    {
                        selectKey += ("X/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else if (nlp_ner.InnerText == "MONEY")
                {
                    if (iskey == true)
                    {
                        selectKey += ("X/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else if (nlp_ner.InnerText == "PERSON")
                {
                    if (iskey == true)
                    {
                        selectKey += ("X/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else if (nlp_ner.InnerText == "PERCENT")
                {
                    if (iskey == true)
                    {
                        selectKey += ("X/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else if (nlp_ner.InnerText == "TIME")
                {
                    if (iskey == true)
                    {
                        selectKey += ("X/" + nlp_word.InnerText);
                    }
                    else
                    {
                        selectKey += (" " + nlp_word.InnerText);
                    }
                    iskey = false;

                }
                else
                {
                    if (iskey != true)
                    {
                        return_key.Add(selectKey);
                        selectKey = "";
                        iskey = true;
                    }
                }
            }

            return return_key;
        }