.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