.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

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...