这个有一篇长文章。strContent
然后一个关键字表,就是一些关键字(如中国,美国,贸易之类的)
找出出现次数最多的关键字,然后取出现次数大于0的关键字,按出现次数排列取前10个
我现在的做法是:
把关键字表的所有信息读到dataset里面,
然后逐行读出来到strContent去扫描(具体扫描方法我还没有看见有这种方法,可以直接算了一个字符串里面包括了另外一个字符串的)
扫出来如果大于0,做一个记录
其实这种方法也不对,具体我还没有实现,只是一个思路,麻烦各位帮我想一下;
例子如下:
keyword表
中国
美国
贸易
经济strContent = "我们中国的贸易不错,对美国的贸易也很好,中国人非常的不错,中国好啊";
我想取得结果如下:
中国 3
贸易 2
美国 1

解决方案 »

  1.   

    可以使用正则表达式
    Regex matchesregex = new Regex(strSearchWord, RegexOptions.IgnoreCase | RegexOptions.Multiline); 

    MatchCollection matchesfound; 

    strText = this.CleanHTML(strText);
    Match matchPrevious = null;
    matchesfound = matchesregex.Matches(strText);
    matchesfound.Count
      

  2.   

    我现在的解决方法是
     DataColumn column = new DataColumn("count");
                dt.Columns.Add(column);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["count"] = strText.Split(dt.Rows[i]["keyword"].ToString()).Length;
                }            DataView dv = dt.DefaultView;
                dv.Sort = "count desc";
      

  3.   

    搜索引擎原理http://d.download.csdn.net/filedown/aHR0cDovL2RsMS5jc2RuLm5ldC9kb3duMy8yMDA2MTIyNS8yNTA5MjYwNjE1NS5wZGY=!161004
      

  4.   

    用Split来分割字符串,看看谁分割的多,再记录分割后的数组的个数,哈哈,不知道对不对