C# 一个简单分词程序的思路和代码(五) 使用代码

这篇博客介绍了如何在C#中实现一个简单的分词程序,通过定义全局对象和加载词库到内存,词库大小约700k。加载词库的代码放在button事件中,利用键树结构节省空间。分词过程使用了两个richtextbox,分别显示分词内容和系统状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的代码是加载词库和分词使用

首先定义一个全局对象

  public KeyWordTree KeyTree = new KeyWordTree();

接下就是要先把词库加载到内存中,我这里使用一个文本的词库,大小是700k左右,所以放在内存并不会占很大内存,一般来说20-30w的词库放在内存中问题都不大,因为键树本来就很节省空间,首部分相同的字不会重复记录。

比如(计算机,计算,计算器,其中的"计"和"算"都只保存了一次)。下面是加载词库的代码,我放在一个button事件中,大家可以自己喜欢放哪都行,load也行

 private void button3_Click(object sender, EventArgs e)
        
{
            
string path = System.Environment.CurrentDirectory + "/baidu.txt";
            
if (File.Exists(path))
            
{
                
this.richTextBox1.AppendText(DateTime.Now.ToLongTimeString() + " ");
               StreamReader Reader 
= new StreamReader(path, Encoding.Default);
               List
<KeyWordTreeNode> tmpRoot =KeyTree.Root .ChildList ;
           
                
while (Reader.Peek() != -1)
                
{
                    
string[] tmp = Reader.ReadLine().Split('|');
                    KeyTree.AddKeyWord(tmp[
0]);
                   
                }

                Reader.Close();
                Reader.Dispose();
                
this.richTextBox1.AppendText(DateTime.Now.ToLongTimeString() + " ");
            }

        }

接下来就是分词了,我的窗口是用了两个richtextbox,一个分词,一个是系统状态,richtextbox2对应分词内容和分词结果。下面是代码

 

   private void button4_Click(object sender, EventArgs e)
        
{
            
string tmp = this.richTextBox2.Text;
            
this.richTextBox2.Text = "";
            
this.richTextBox1.AppendText(DateTime.Now.ToLongTimeString() + " ");
            
string Result =KeyTree.FindKeyWord(tmp);
            
this.richTextBox1.AppendText(DateTime.Now.ToLongTimeString() + " ");
            
this.richTextBox2.Text = Result.ToString();
        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值