//經由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") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else if (nlp_ner.InnerText == "LOCATION") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else if (nlp_ner.InnerText == "ORGANIZATION") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else if (nlp_ner.InnerText == "MONEY") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else if (nlp_ner.InnerText == "PERSON") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else if (nlp_ner.InnerText == "PERCENT") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else if (nlp_ner.InnerText == "TIME") { selectKey += (" " + nlp_word.InnerText); iskey = false; } else { if (iskey != true) { return_key.Add(selectKey); selectKey = ""; iskey = true; } } } return return_key; }