Beispiel #1
0
        /// <summary>
        /// 从数据库中读取数据
        /// </summary>
        /// <returns></returns>
        public static bool ReadFromDb()
        {
            DataTable dt = null;

            try
            {
                dt = SqlHelper.GetInstance(ConfigProxy.ConnectionString).ExecuteDataTable(ConfigProxy.SelectSQL);
            }
            catch (Exception ex)
            {
                Console.WriteLine("读取数据库失败" + ex.ToString());
                return(false);
            }
            try
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (i % 100 == 0)
                    {
                        Console.WriteLine("正在处理第" + i + "数据");
                    }
                    InputItem item = new InputItem();
                    item.UserContent = dt.Rows[i][0] == null ? string.Empty : dt.Rows[i][0].ToString().Trim();
                    item.BizName     = dt.Rows[i][1] == null ? string.Empty : dt.Rows[i][1].ToString().Trim();
                    item.OperaName   = dt.Rows[i][2] == null ? string.Empty : dt.Rows[i][2].ToString().Trim();

                    //短信总数加1
                    SumCount++;
                    if (item.IsRec)
                    {
                        //短信内容已经识别
                        RecCount++;
                        continue;
                    }
                    else
                    {
                        //未识别
                        RefuseCount++;
                    }
                    //保留预处理之前的短信
                    string temp = item.UserContent;
                    //短信内容预处理
                    item.UserContent = SMSPreProc.PreProc(item.UserContent);

                    #region 空短信
                    //空短信
                    if (string.IsNullOrEmpty(item.UserContent))
                    {
                        EmptyCount++;
                        EmptyList.Add(temp);
                        continue;
                    }
                    #endregion

                    #region 应该识别而没有识别的短信
                    //应该识别而没有识别
                    if (SMSProxy.DicItems.ContainsKey(item.UserContent))
                    {
                        SMSCount++;
                        //如果已经统计过,数目加1
                        if (SMSDic.ContainsKey(item.UserContent))
                        {
                            SMSDic[item.UserContent]++;
                        }
                        else
                        {
                            SMSDic.Add(item.UserContent, 1);
                        }
                        SMSList.Add(temp);
                        continue;
                    }
                    #endregion

                    #region 长短信
                    int length = ConfigProxy.SMSMaxLen;

                    if (temp.Length > length)
                    {
                        LongSMSCount++;
                        LongSMSList.Add(temp);
                        continue;
                    }

                    #endregion

                    #region 单字短信
                    if (item.UserContent.Length <= 1)
                    {
                        DanziCount++;
                        //加入预处理之前的短信内容
                        DanziList.Add(temp);
                        if (DanziDic.ContainsKey(item.UserContent))
                        {
                            DanziDic[item.UserContent]++;
                        }
                        else
                        {
                            DanziDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 纯数字短信
                    if (TextCommonFunctions.IsNumber(item.UserContent))
                    {
                        PureNumSMSCount++;
                        PureNumList.Add(temp);
                        if (PureNumDic.ContainsKey(item.UserContent))
                        {
                            PureNumDic[item.UserContent]++;
                        }
                        else
                        {
                            PureNumDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 完全乱码
                    if (TextCommonFunctions.IsFullGarbled(item.UserContent))
                    {
                        FullGarbledCount++;
                        //保留预处理之前的短信
                        FullGarbledList.Add(temp);
                        if (FullGarbledDic.ContainsKey(item.UserContent))
                        {
                            FullGarbledDic[item.UserContent]++;
                        }
                        else
                        {
                            FullGarbledDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 出现在SMSRefuse.txt拒识表中的短信
                    if (SMSRefuseProxy.DicItems.ContainsKey(item.UserContent))
                    {
                        SMSRefuseCount++;
                        SMSRefuseList.Add(temp);
                        if (SMSRefuseDic.ContainsKey(item.UserContent))
                        {
                            SMSRefuseDic[item.UserContent]++;
                        }
                        else
                        {
                            SMSRefuseDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 出现在Talking.txt中的短信
                    if (TalkingProxy.DicItems.ContainsKey(item.UserContent))
                    {
                        SMSTalkingCount++;
                        SMSTalkingList.Add(temp);
                        if (SMSTalkingDic.ContainsKey(item.UserContent))
                        {
                            SMSTalkingDic[item.UserContent]++;
                        }
                        else
                        {
                            SMSTalkingDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 其它类型的短信,作为单条处理

                    OtherCount++;
                    OtherList.Add(temp);
                    if (OtherDic.ContainsKey(item.UserContent))
                    {
                        OtherDic[item.UserContent]++;
                    }
                    else
                    {
                        OtherDic.Add(item.UserContent, 1);
                    }

                    #endregion
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// 读取Excel数据
        /// </summary>
        /// <returns></returns>
        public static bool ReadExcel()
        {
            Workbook workbook = null;
            Cells    cells    = null;

            try
            {
                workbook = new Workbook();
                workbook.Open(ConfigProxy.InputFile);
                cells = workbook.Worksheets[0].Cells;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(false);
            }

            try
            {
                //3列 第1列 用户短信 第二列 业务名 第三 操作名
                for (int i = 1; i < cells.Rows.Count; i++)
                {
                    if (i % 1000 == 0)
                    {
                        Console.WriteLine("正在处理第" + i + "数据");
                    }

                    InputItem item = new InputItem();
                    item.UserContent = cells.Rows[i][0].Value == null ? string.Empty : cells.Rows[i][0].Value.ToString().Trim();
                    item.BizName     = cells.Rows[i][1].Value == null ? string.Empty : cells.Rows[i][1].Value.ToString().Trim();
                    item.OperaName   = cells.Rows[i][2].Value == null ? string.Empty : cells.Rows[i][2].Value.ToString().Trim();

                    //短信总数加1
                    SumCount++;
                    if (item.IsRec)
                    {
                        //短信内容已经识别
                        RecCount++;
                        continue;
                    }
                    else
                    {
                        //未识别
                        RefuseCount++;
                    }
                    //保留预处理之前的短信
                    string temp = item.UserContent;
                    //短信内容预处理
                    item.UserContent = SMSPreProc.PreProc(item.UserContent);

                    #region 空短信
                    //空短信
                    if (string.IsNullOrEmpty(item.UserContent))
                    {
                        EmptyCount++;
                        EmptyList.Add(temp);
                        continue;
                    }
                    #endregion

                    #region 应该识别而没有识别的短信
                    //应该识别而没有识别
                    if (SMSProxy.DicItems.ContainsKey(item.UserContent))
                    {
                        SMSCount++;
                        //如果已经统计过,数目加1
                        if (SMSDic.ContainsKey(item.UserContent))
                        {
                            SMSDic[item.UserContent]++;
                        }
                        else
                        {
                            SMSDic.Add(item.UserContent, 1);
                        }
                        SMSList.Add(temp);
                        continue;
                    }
                    #endregion

                    #region 长短信
                    int length = ConfigProxy.SMSMaxLen;

                    if (temp.Length > length)
                    {
                        LongSMSCount++;
                        LongSMSList.Add(temp);
                        continue;
                    }

                    #endregion

                    #region 单字短信
                    if (item.UserContent.Length <= 1)
                    {
                        DanziCount++;
                        //加入预处理之前的短信内容
                        DanziList.Add(temp);
                        if (DanziDic.ContainsKey(item.UserContent))
                        {
                            DanziDic[item.UserContent]++;
                        }
                        else
                        {
                            DanziDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 纯数字短信
                    if (TextCommonFunctions.IsNumber(item.UserContent))
                    {
                        PureNumSMSCount++;
                        PureNumList.Add(temp);
                        if (PureNumDic.ContainsKey(item.UserContent))
                        {
                            PureNumDic[item.UserContent]++;
                        }
                        else
                        {
                            PureNumDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 完全乱码
                    if (TextCommonFunctions.IsFullGarbled(item.UserContent))
                    {
                        FullGarbledCount++;
                        //保留预处理之前的短信
                        FullGarbledList.Add(temp);
                        if (FullGarbledDic.ContainsKey(item.UserContent))
                        {
                            FullGarbledDic[item.UserContent]++;
                        }
                        else
                        {
                            FullGarbledDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 出现在SMSRefuse.txt拒识表中的短信
                    if (SMSRefuseProxy.DicItems.ContainsKey(item.UserContent))
                    {
                        SMSRefuseCount++;
                        SMSRefuseList.Add(temp);
                        if (SMSRefuseDic.ContainsKey(item.UserContent))
                        {
                            SMSRefuseDic[item.UserContent]++;
                        }
                        else
                        {
                            SMSRefuseDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 出现在Talking.txt中的短信
                    if (TalkingProxy.DicItems.ContainsKey(item.UserContent))
                    {
                        SMSTalkingCount++;
                        SMSTalkingList.Add(temp);
                        if (SMSTalkingDic.ContainsKey(item.UserContent))
                        {
                            SMSTalkingDic[item.UserContent]++;
                        }
                        else
                        {
                            SMSTalkingDic.Add(item.UserContent, 1);
                        }
                        continue;
                    }
                    #endregion

                    #region 其它类型的短信,作为单条处理

                    OtherCount++;
                    OtherList.Add(temp);
                    if (OtherDic.ContainsKey(item.UserContent))
                    {
                        OtherDic[item.UserContent]++;
                    }
                    else
                    {
                        OtherDic.Add(item.UserContent, 1);
                    }

                    #endregion
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(false);
            }
            return(true);
        }