展会信息港展会大全

ASP.NET编写简单的中文分词程序
来源:互联网   发布日期:2011-09-07 14:01:18   浏览:14667次  

导读:叶子们的家-爱网者联盟-独具风格的web设计创意与资源站!...


nbsp; _countTable = new ChineseWordsHashCountSet();
11            InitFromFile("ChineseDictionary.txt");
12        }
13
14        /**//// <summary>
15        /// 从指定的文件中初始化中文词语字典和字符串次数字典。
16        /// </summary>
17        /// <param>文件名</param>
18        private static void InitFromFile(string fileName)
19        {
20            string path = Directory.GetCurrentDirectory() +@"\" + fileName;
21            if (File.Exists(path))
22            {
23                using (StreamReader sr = File.OpenText(path))
24                {
25                    string s = "";
26                    while ((s = sr.ReadLine()) != null)
27                    {
28                        ChineseWordUnit _tempUnit = InitUnit(s);
29                        _countTable.InsertWord(_tempUnit.Word);
30                    }
31                }
32            }
33        }
34
35        /**//// <summary>
36        /// 将一个字符串解析为ChineseWordUnit。
37        /// </summary>
38        /// <param>字符串</param>
39        /// <returns>解析得到的ChineseWordUnit</returns>
40        private static ChineseWordUnit InitUnit(string s)
41        {
42            Regex reg = new Regex(@"\s+");
43            string[] temp = reg.Split(s);
44            if (temp.Length!=2)
45            {
46                throw new Exception("字符串解析错误:"+s);
47            }
48            return new ChineseWordUnit(temp[0],Int32.Parse(temp[1]));
49        }
50
51        /**//// <summary>
52        /// 分析输入的字符串,将其切割成一个个的词语。
53        /// </summary>
54        /// <param>待切割的字符串</param>
55        /// <returns>所切割得到的中文词语数组</returns>
56        public static string[] ParseChinese(string s)
57        {
58            int _length = s.Length;
59            string _temp = String.Empty;
60            ArrayList _words = new ArrayList();
61
62            for(int i=0;i<s.Length;)
63            {
64                _temp = s.Substring(i,1);
65                if (_countTable.GetCount(_temp)>1)
66                {
67                    int j=2;
68
69                    for (;i+j<s.Length+1&&_countTable.GetCount(s.Substring(i,j))>0;j++)
70                    {
71                    }
72                    _temp = s.Substring(i,j-1);
73                    i = i + j - 2;
74                }
75                i++;
76                _words.Add(_temp);
77            }
78
79            string[] _tempStringArray = new string[_words.Count];
80            _words.CopyTo(_tempStringArray);
81            return _tempStringArray;
82        }
83    }

四、测试

和海量分词演示程序对比测试:

Case 1:  新浪体育讯 在被尤文淘汰之后,皇马主帅博斯克拒绝接受媒体对球队后防线的批评,同时还为自己排出的首发阵容进行了辩护。“失利是全队的责任,而不仅仅是后防线该受指责,”博斯克说,“我并不认为我们踢得一塌糊涂。”“我们进入了半决赛,而且在晋级的道路上一路奋战。即使是今天的比赛我们也有几个翻身的机会,但我们面对的对手非常强大,他们踢得非常好。”“我们的球迷应该为过去几个赛季里我们在冠军杯中的表现感到骄傲。”博斯克还说。对于博斯克在首发中排出了久疏战阵的坎比亚索,赛后有记者提出了质疑,认为完全应该将队内的另一名球员帕文派遣上场以加强后卫线。对于这一疑议,博斯克拒绝承担所谓的“责任”,认为球队的首发没有问题。“我们按照整个赛季以来的方式做了,对于人员上的变化我没有什么可说的。”对于球队在本赛季的前景,博斯克表示皇马还有西甲联赛的冠军作为目标。“皇家马德里在冠军杯中战斗到了最后,我们在联赛中也将这么做。”

海量分词结果:

    新浪 体育 讯   在 被 尤文 淘汰 之后 , 皇马 主帅 博斯克 拒绝 接受 媒体 对 球队 后防线 的 批评 , 同时 还 为 自己 排出 的 首发 阵容 进行 了 辩护 。 “ 失利 是 全队 的 责任 , 而 不 仅仅 是 后防线 该 受 指责 , ” 博斯克 说 , “ 我 并 不 认为 我们 踢 得 一塌糊涂 。” “ 我们 进入 了 半决赛 , 而且 在 晋级 的 道路 上 一路 奋战 。 即使 是 今天 的 比赛 我们 也 有 几个 翻身 的 机会 , 但 我们 面对 的 对手 非常 强大 , 他们 踢 得 非常 好 。” “ 我们 的 球迷 应该 为 过去 几个 赛季 里 我们 在 冠军 杯中 的 表现 感到 骄傲 。” 博斯克 还 说 。 对于 博斯克 在 首发 中 排出 了 久 疏 战阵 的 坎比亚索 , 赛后 有 记者 提出 了 质疑 , 认为 完全 应该 将 队 内 的 另 一名 球员 帕文 派遣 上场 以 加强 后卫线 。 对于 这 一 疑 议 , 博斯克 拒绝 承担 所谓 的 “ 责任 ” , 认为 球队 的 首发 没有 问题 。 “ 我们 按照 整个 赛季 以来 的 方式 做 了 , 对于 人员 上 的 变化 我 没有 什么 可 说 的 。” 对于 球队 在 本 赛季 的 前景 , 博斯克 表示 皇马 还有 西 甲 联赛 的 冠军 作为 目标 。 “ 皇家 马德里 在 冠军 杯中 战斗 到 了 最后 , 我们 在 联赛 中 也 将 这么 做 。”

ChineseParse分词结果:

    新 浪 体育 讯   在 被 尤 文 淘汰 之后 , 皇 马 主帅 博斯 克 拒绝 接受 媒体 对 球队 后防线 的 批评 , 同时 还 为 自己 排 出 的 首发 阵容 进行 了 辩护 。“ 失利 是 全队 的 责任 , 而 不仅仅 是 后防线 该 受 指责 , ” 博斯 克 说 , “ 我 并 不 认为 我们 踢 得 一塌糊涂 。 ” “ 我们 进入 了 半决赛 , 而且 在 晋级 的 道路 上一 路 奋战 。 即使 是 今天 的 比赛 我们 也 有 几 个 翻身 的 机会 , 但 我们 面对 的 对手 非常 强大 , 他们 踢 得 非常 好 。 ” “ 我们 的 球迷 应该 为 过 去 几 个 赛季 里 我们 在 冠军杯 中 的 表现 感到 骄傲 。 ” 博斯 克 还 说 。对于 博斯 克 在 首发 中排 出 了 久 疏 战 阵 的 坎 比 亚 索 , 赛后 有 记者 提出 了 质疑 , 认为 完全 应该 将 队 内 的 另一 名 球员 帕 文 派遣 上场 以 加强 后卫线 。 对于 这一 疑 议 , 博斯 克 拒绝 承担 所谓 的 “ 责任 ” , 认为 球队 的 首发 没有 问题 。 “ 我们 按照 整个 赛季 以来 的 方式 做 了 , 对于 人员 上 的 变化 我 没有 什么 可 说 的 。 ” 对于 球队 在 本赛 季 的 前景 , 博斯 克 表示 皇 马 还有 西 甲 联赛 的 冠军 作为 目标 。 “ 皇家 马德里 在 冠军杯 中 战斗 到 了 最后 , 我们 在 联赛 中 也 将 这么 做 。 ”

因为没有体育专业词库和人名专业词库,所以ChineseParse不能认识这些专业词.

Case 2:    我国汽车社会第一次重大转型历经十多年时间。在1994年出台的《汽车工业产业政策》中,最醒目的一条就是“逐步改变以行政机关、团体、事业单位及国有企业为主的公款购买、使用小汽车的消费结构”。从公款购买汽车为主到汽车逐渐进入家庭,第一次重大转型给人民生活质量带来了巨大提升。这次转型的主要推动力是态度鲜明的产业政策、持续高速增长的国民经济以及蓬勃发展的国内汽车工业。     然而,当我们快速迈进以私人汽车为主体的汽车社会的时候,也面临着新的形势、新的考验:中央强调树立和落实科学发展观,要求国内企业提高自主创新能力;今年“两会”期间,中央又提出构建和谐社会和节约型社会的精神;同时,我国汽车社会面临能源紧缺、燃油价格上涨、土地资源有限等诸多不利因素。在这样的大背景下,进行第二次重大转型刻不容缓。

海量分词结果:

我国 汽车 社会 第一次 重大 转型 历经 十多年 时间 。 在 1994年 出台 的 《 汽车 工业 产业 政策 》 中 , 最 醒目 的 一条 就是 “ 逐步 改变 以 行政 机关 、 团体 、 事业 单位 及 国有 企业 为主 的 公款 购买 、 使用 小汽车 的 消费 结构 ” 。 从 公款 购买 汽车 为主 到 汽车 逐渐 进入 家庭 , 第一次 重大 转型 给 人民 生活 质量 带来 了 巨大 提升 。 这次 转型 的 主要 推动力 是 态度 鲜明 的 产业 政策 、 持续 高速 增长 的 国民经济 以及 蓬勃 发展 的 国内 汽车 工业 。       然而 , 当 我们 快速 迈进 以 私人 汽车 为 主体 的 汽车 社会 的 时候 , 也 面临 着 新 的 形势 、 新 的 考验 : 中央 强调 树立 和 落实 科学 发展观 , 要求 国内 企业 提高 自主 创新 能力 ; 今年 “ 两会 ” 期间 , 中央 又 提出 构建 和谐 社会 和 节约型 社会 的 精神 ; 同时 , 我国 汽车 社会 面临 能源 紧缺 、 燃油 价格 上涨 、 土地 资源 有限 等 诸多 不利 因素 。 在 这样 的 大 背景 下 , 进行 第二次 重大 转型 刻不容缓 。  
 
ChineseParse分词结果:

我国 汽车 社会 第一 次 重大 转型 历经 十 多年 时间 。 在 1 9 9 4 年 出台 的 《 汽车 工业 产业 政策 》 中 , 最 醒目 的 一条 就是 “ 逐步 改变 以 行政 机关 、团体 、 事业 单位 及 国有 企业 为主 的 公款 购买 、 使用 小汽车 的 消费 结构 ”。 从 公款 购买 汽车 为主 到 汽车 逐渐 进入 家庭 , 第一 次 重大 转型 给 人民 生活 质量 带来 了 巨大 提升 。 这次 转型 的 主要 推动力 是 态度 鲜

上一页  [1] [2] [3] 下一页

叶子树:www.webshu.net

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港