/// <summary> /// 公司名称的获得 /// </summary> /// <param name="FullName"></param> /// <param name="ShortName"></param> /// <returns></returns> public static (String FullName, String ShortName) NormalizeCompanyName(AnnouceDocument doc, string word) { if (String.IsNullOrEmpty(word)) { return(String.Empty, String.Empty); } var fullname = word.Replace(" ", String.Empty); var shortname = String.Empty; foreach (var companyname in doc.companynamelist) { if (companyname.secFullName == fullname) { //注意:这里可能出现两个具有相同FullName,但是某个没有ShortName的可能性! if (shortname == String.Empty && !String.IsNullOrEmpty(companyname.secShortName)) { shortname = companyname.secShortName; break; } } if (companyname.secShortName == fullname) { fullname = companyname.secFullName; shortname = companyname.secShortName; break; } //如果进来的是简称,而提取的公司信息里面,只有全称,这里简单推断一下 //简称和全称的关系 if (companyname.secFullName.Contains(fullname) && companyname.secFullName.Length > fullname.Length) { fullname = companyname.secFullName; shortname = word; } } if (string.IsNullOrEmpty(shortname)) { //字典 shortname = CompanyNameLogic.GetCompanyNameByFullName(fullname).secShortName; } if (string.IsNullOrEmpty(shortname)) { //在原文中寻找该字符名称,然后看一下,其后是否有【简称】字样, //简称后是否有引号字样“XXXX”有的话,差不多就是了 shortname = GetShortNameByFullName(fullname, doc); if (!string.IsNullOrEmpty(shortname)) { Console.WriteLine(fullname + ":" + shortname); } } return(fullname, shortname); }
public static (String FullName, String ShortName) NormalizeCompanyName(AnnouceDocument doc, string word) { if (String.IsNullOrEmpty(word)) { return(String.Empty, String.Empty); } var fullname = word.Replace(" ", String.Empty); var shortname = String.Empty; foreach (var companyname in doc.companynamelist) { if (companyname.secFullName == fullname) { //注意:这里可能出现两个具有相同FullName,但是某个没有ShortName的可能性! if (shortname == String.Empty && !String.IsNullOrEmpty(companyname.secShortName)) { shortname = companyname.secShortName; break; } } if (companyname.secShortName == fullname) { fullname = companyname.secFullName; shortname = companyname.secShortName; break; } //如果进来的是简称,而提取的公司信息里面,只有全称,这里简单推断一下 //简称和全称的关系 if (companyname.secFullName.Contains(fullname) && companyname.secFullName.Length > fullname.Length) { fullname = companyname.secFullName; shortname = word; } } if (shortname == String.Empty) { shortname = CompanyNameLogic.GetCompanyNameByFullName(fullname).secShortName; } return(fullname, shortname); }