//經由nlp分析出的ner將單字組合為有意義的key組裝
private List<string> ner(string path)
{
List<string> return_key = new List<string>();
Xml_reader xml_reader = new Xml_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;
}