.NET2.0泛型就是爽!写了一个分词算法,抖一抖代码

2024-02-24 14:08

本文主要是介绍.NET2.0泛型就是爽!写了一个分词算法,抖一抖代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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]


这篇关于.NET2.0泛型就是爽!写了一个分词算法,抖一抖代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/742341

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤