首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

.NET2.0泛型就是爽!写了一个分词算法,抖一抖代码.感谢chenzq!解决办法

2012-01-03 
.NET2.0泛型就是爽!写了一个分词算法,抖一抖代码.感谢chenzq!winform中拖一个按钮,两个RichTextusingSyste

.NET2.0泛型就是爽!写了一个分词算法,抖一抖代码.感谢chenzq!
winform中拖一个按钮,两个RichText
using   System;
using   System.Collections.Generic;
using   System.ComponentModel;
using   System.Data;
using   System.Drawing;
using   System.Text;
using   System.Windows.Forms;
 
namespace   cutWord
{
        public   partial   class   Form1   :   Form
        {
                public   Form1()
                {
                        InitializeComponent();
                }

                private   void   button1_Click(object   sender,   EventArgs   e)
                {
                        List <KeyValuePair <string,   int> >   L   =   cutWord(this.richTextBox1.Text);
                        this.richTextBox2.Text   =   " ";
                        int   count   =   0;
                        for   (int   i   =   L.Count-1;   i   > 0;   i--)
                        {
                                if   (count   >   15)
                                {
                                        break;
                                }
                                count++;
                                this.richTextBox2.Text   +=   L[i].Key   + "[ "   +   L[i].Value   + "]\n ";
                        }                                  
                }
                private   List <KeyValuePair <string,   int> >     cutWord(string   article)
                {
                        Dictionary <string,   int>   D   =   new   Dictionary <string,   int> ();
                        //if   len(escape(x))   /len(x)=6   then   isGB=true   else   isGB=false
                        //HttpUtility..::



                        System.Text.RegularExpressions.Regex   Re   =   new   System.Text.RegularExpressions.Regex(@ "[^\u4e00-\u9fa5]+ ");
                        for   (int   l   =   2;   l   <=   4;   l++)
                        {
                                for   (int   i   =   0;   i   <   article.Length-l;   i++)
                                {
                                        string   theWord   =   article.Substring(i,   l);
                                        if   (Re.Replace(theWord, " ")   ==   theWord)
                                        {
                                                if   (D.ContainsKey(theWord))
                                                {
                                                        D[theWord]++;
                                                }
                                                else
                                                {
                                                        D.Add(theWord,1);
                                                }
                                        }                                                            
                                }
                        }
               
                        List <KeyValuePair <string,   int> >   L   =   new   List <KeyValuePair <string,   int> > ();


                        foreach   (KeyValuePair <string,   int>   K   in   D)
                        {
                                if   (K.Value   >   1)
                                {
                                        L.Add(K);
                                }
                               
                                       
                        }

                        L.Sort(
                                delegate(KeyValuePair <String,   int>   a,   KeyValuePair <String,   int>   b)
                                {                                    
                                        if   (a.Value   ==   b.Value)
                                        {
                                                if   (a.Key.Length   ==   b.Key.Length)
                                                {
                                                        return   0;
                                                }
                                                else
                                                {
                                                        if   (a.Key.Length   >   b.Key.Length)
                                                        {


                                                                return   1;
                                                        }
                                                        else
                                                        {
                                                                return   -1;
                                                        }
                                                }                                                
                                        }
                                        if   (a.Value   >   b.Value)
                                        {
                                                return   1;
                                        }
                                        else
                                        {
                                                return   -1;
                                        }
                                       
                                }

                        );
                        return   (L);


                }
        }
}

测试Sohu首页关键字和频率:
女人[20]
搜狐[16]
手机[13]
游戏[13]
博客[13]
明星[11]
留学[10]
美女[9]
大学[9]
上海[9]
中国[9]
北京[9]
奥运[9]
曝光[9]
开盘[9]
视频[8]

晕!女人排第一
新浪:

中国[22]
视频[20]
手机[14]
上海[13]
新浪[13]
北京[12]
北大[12]
国际[12]
投资[11]
清华[11]
博客[11]
直播[11]
大学[10]
留学[10]
项目[9]
赚钱[9]

再看CSDN首页:
软件[16]
程序[13]
程序员[11]
序员[11]
开发[11]
大会[7]
微软[7]
我的[7]
专区[6]
技术[6]
中国[5]
使用[5]
我们[5]
模式[5]
系统[5]
人才[5]




[解决办法]
@_@
[解决办法]
> _ <
[解决办法]
@_@
[解决办法]
*_*
[解决办法]
-_-
[解决办法]
8_8
[解决办法]
_-_-_
[解决办法]
学习 ,呵呵
[解决办法]
up^
[解决办法]
@_*

JF
[解决办法]
抢分先1!!!!!!!!!!!!!!!!!!!!!
[解决办法]
2,3,4

语气助词都没去掉就开始切了 -_-;
[解决办法]
呵呵...不错.
[解决办法]
接分
[解决办法]
*_*!!

[解决办法]
接分先,帮顶一下
[解决办法]
不错.不错.copy学习中,接分先
[解决办法]
路过接点分!
[解决办法]
没有注释
[解决办法]
路过接点分!

[解决办法]
举着学习的大旗路过
[解决办法]
\\\//
-@_@-
[解决办法]
学习学习!!

[解决办法]
jf
[解决办法]
最近比较穷,接点分。
[解决办法]
~_~


$_$

O_O

------解决方案--------------------


OoO

-_-

9_9

+_+
[解决办法]
UP
[解决办法]
好热闹喔...

^o^
[解决办法]
接分留着问问题~
[解决办法]
什么东东,不理解
[解决办法]
不懂泛型。你说的分词是什么意思呢,能够判断一句话中的词吗,不会这么神奇吧?
讲讲原理。。。
[解决办法]
不错不错,学习中!
[解决办法]
学习和接分
[解决办法]
System.Text.RegularExpressions.Regex Re = new System.Text.RegularExpressions.Regex(@ "[^\u4e00-\u9fa5]+ ");
这句是关键,泛型只是一个存储手段
[解决办法]
JF
[解决办法]
呵呵
[解决办法]
没仔细看,但是List <KeyValuePair <K,V> > 肯定有问题。如果要按K来索引直接用Dictionary,如果按照V来索引则把K、V调换一下,如果既要按照K来索引又要按照V来索引,则根据具体需求有不同的类可以使用。
[解决办法]
不錯,
[解决办法]
接个分
[解决办法]
不错,我借鉴了
[解决办法]
*_*
[解决办法]
顶了再细看
[解决办法]
不错
[解决办法]
虽然我是菜鸟
什么都不懂
但是我决定从今天开始学习C#
我要努力
请前辈们多多支持
[解决办法]
@ @
[解决办法]
看先
[解决办法]
顶了再细看

[解决办法]
@_@
[解决办法]
学习下
[解决办法]
谢谢LZ帖出来,学习了
[解决办法]
~_*
[解决办法]
泛型啊,总算看到个人写个使用点的例子了,书上都是一笔带过的!这个要顶!
[解决办法]
UP
[解决办法]
学习啊
[解决办法]
学习中 哎 看着很多还是不明白 LZ能不能加上注释

谢谢了呀
[解决办法]
呵呵.泛型虽然懂一点.但用的不好.学习.
[解决办法]
学习下
------解决方案--------------------


没怎么用过,受教了...
[解决办法]
@_@
这个不错,学习
[解决办法]
楼主写上注释,让大家也学习 学习
[解决办法]
正找这样的例子,谢了
[解决办法]
学习中
[解决办法]
学习 学习

[解决办法]
哦 是这样啊 .....
[解决办法]
^_^
[解决办法]
翻译了些泛型的东西,希望对大家有帮助

http://blog.csdn.net/MaybeHelios/category/204292.aspx

[解决办法]
.. 那我来接分了
[解决办法]
@_@
[解决办法]
不错
[解决办法]
那我来接分了

[解决办法]
接分+学习
[解决办法]
居然这样用泛型,晕,
[解决办法]
jf
[解决办法]
学习!接分!
[解决办法]
用这个确实可以少些很多代码
[解决办法]
mark

[解决办法]
学习
[解决办法]
(-_-)
[解决办法]
ddddddddddd
[解决办法]
学习
[解决办法]
LZ厉害啊!
够我学习的了。呵呵
[解决办法]
飘过
[解决办法]
路过接点分!

[解决办法]
好像分词做的。。。太简单了

接分
[解决办法]
@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@ @@@@@ @@@@@ @@@@@
@@@@@ @@@@@ @@@ @@@

jf
[解决办法]
哈哈...泛型????
[解决办法]
厉害啊,呵呵,学习一下
------解决方案--------------------


还看不懂~~~收藏先!!
[解决办法]
中文分词吗? 好厉害啊~~~
[解决办法]
up
[解决办法]
I 服了 You
[解决办法]
up
[解决办法]
不错,借鉴一下
[解决办法]
傻子来了,一切都躲开阿,给我1分
[解决办法]
study~~~~~~~
[解决办法]
mark

热点排行