资源简介

学习了部分分词原理和方法,做了相应的改进: 1、创建了两种词典树,做了性能上的比较 2、改进数字词组的分词方法,加入语法的判断 3、提供地名词典创建工具。将地名全名词典分词获得分词后的地名词典,减少词条数目,增加查找速度。程序用一个中等省会城市测试,模糊查询和精确查询效果都不错。 4、加入地名输入提示的工具。 代码采用C#,为学习成果,尚有很多不完善地方,欢迎交流。 词典数据来源于网络!

资源截图

代码片段和文件信息

/*
 * 如修改程序,请注明修改人、日期和修改内容提要
 * Content:DictBuilder
 * Email:killo007@163.com
 * Date:August 8th2008
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ChineseSegement
{
    public partial class DictBuilder : Form
    {
        public DictBuilder()
        {
            InitializeComponent();
        }

        private void DictBuilder_Load(object sender EventArgs e)
        {
            this.txtExistFile.ReadOnly = true;
            this.button2.Enabled = false;
        }
        /// 
        /// 获取文件路径
        /// 

        /// 
        /// 
        private void btnInput_Click(object sender EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = “文本文档 (*.txt)|*.txt|数据文件(*.dat)|*.dat|所有文件(*.*)|*.*“;
            dialog.FilterIndex = 1;
            dialog.InitialDirectory = @“E:\学习\自定义控件\ChineseSegement\ChineseSegmentTools\Dictionary\DictionaryBuild“;
            dialog.AddExtension = true;
            if (DialogResult.OK == dialog.ShowDialog())
            {
                this.txtInput.Text = dialog.FileName;
            }
        }
        /// 
        /// 获取文件路径
        /// 

        /// 
        /// 
        private void btnprePath_Click(object sender EventArgs e)
        {
            SaveFileDialog dialog = new SaveFileDialog();
            dialog.Filter = “文本文档 (*.txt)|*.txt|数据文件(*.dat)|*.dat|所有文件(*.*)|*.*“;
            dialog.FilterIndex = 1;
            dialog.InitialDirectory = @“E:\\学习\自定义控件\ChineseSegement\ChineseSegmentTools\Dictionary\DictionaryBuild“;
            dialog.DefaultExt = “txt“;
            dialog.RestoreDirectory = true;
            dialog.AddExtension = true;
            if (DialogResult.OK == dialog.ShowDialog())
            {
                this.txtpreTreat.Text = dialog.FileName;
            }
        }

        private void checkBox1_CheckedChanged(object sender EventArgs e)
        {
            if (this.checkBox1.Checked == true)
            {
                this.txtExistFile.ReadOnly = false;
                this.button2.Enabled = true;
            }
            else
            {
                this.txtExistFile.ReadOnly = true;
                this.button2.Enabled = false;
            }
        }
        /// 
        /// 词典预处理
        /// 

        /// 
        /// 
        private void btnPreTreat_Click(object sender EventArgs e)
        {
            if (this.txtInput.Text != null && this.txtInput.Text != ““)
            {
                if (this.txtpreTreat.Text != ““)
                {
                    ChineseSegmentT

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      32768  2008-09-05 10:06  中文地名查询\ChineseSegement\bin\Debug\ChineseSegement.exe

     文件      54784  2008-09-05 10:06  中文地名查询\ChineseSegement\bin\Debug\ChineseSegement.pdb

     文件       5632  2005-12-08 14:51  中文地名查询\ChineseSegement\bin\Debug\ChineseSegement.vshost.exe

     文件      28672  2008-09-05 10:06  中文地名查询\ChineseSegement\bin\Debug\ChineseSegmentTools.dll

     文件      48640  2008-09-05 10:06  中文地名查询\ChineseSegement\bin\Debug\ChineseSegmentTools.pdb

     文件       3888  2008-08-08 09:11  中文地名查询\ChineseSegement\ChineseSegement.csproj

     文件       6949  2008-09-05 09:59  中文地名查询\ChineseSegement\DictBuilder.cs

     文件      16011  2008-08-08 10:28  中文地名查询\ChineseSegement\DictBuilder.Designer.cs

     文件       5814  2008-08-08 10:28  中文地名查询\ChineseSegement\DictBuilder.resx

     文件      14639  2008-09-05 10:05  中文地名查询\ChineseSegement\Form1.cs

     文件      10524  2008-08-08 11:28  中文地名查询\ChineseSegement\Form1.Designer.cs

     文件       5814  2008-08-08 11:28  中文地名查询\ChineseSegement\Form1.resx

     文件        443  2008-09-05 10:43  中文地名查询\ChineseSegement\obj\ChineseSegement.csproj.FileList.txt

     文件        906  2008-08-08 11:28  中文地名查询\ChineseSegement\obj\Debug\ChineseSegement.csproj.GenerateResource.Cache

     文件        180  2008-09-05 10:06  中文地名查询\ChineseSegement\obj\Debug\ChineseSegement.DictBuilder.resources

     文件      32768  2008-09-05 10:06  中文地名查询\ChineseSegement\obj\Debug\ChineseSegement.exe

     文件        180  2008-09-05 10:06  中文地名查询\ChineseSegement\obj\Debug\ChineseSegement.Form1.resources

     文件      54784  2008-09-05 10:06  中文地名查询\ChineseSegement\obj\Debug\ChineseSegement.pdb

     文件        180  2008-09-05 10:06  中文地名查询\ChineseSegement\obj\Debug\ChineseSegement.Properties.Resources.resources

     文件       8846  2008-09-05 10:06  中文地名查询\ChineseSegement\obj\Debug\ResolveAssemblyReference.cache

     文件       4608  2008-08-04 13:16  中文地名查询\ChineseSegement\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll

     文件        474  2008-08-01 10:45  中文地名查询\ChineseSegement\Program.cs

     文件       1196  2008-08-01 10:45  中文地名查询\ChineseSegement\Properties\AssemblyInfo.cs

     文件       2852  2008-08-04 13:16  中文地名查询\ChineseSegement\Properties\Resources.Designer.cs

     文件       5612  2008-08-01 10:45  中文地名查询\ChineseSegement\Properties\Resources.resx

     文件       1111  2008-08-04 13:16  中文地名查询\ChineseSegement\Properties\Settings.Designer.cs

     文件        249  2008-08-01 10:45  中文地名查询\ChineseSegement\Properties\Settings.settings

     文件       1445  2008-08-01 11:06  中文地名查询\ChineseSegement.sln

    ..A..H.     30720  2008-09-05 10:44  中文地名查询\ChineseSegement.suo

     文件      28672  2008-09-05 10:06  中文地名查询\ChineseSegmentTools\bin\Debug\ChineseSegmentTools.dll

............此处省略38个文件信息

评论

共有 条评论