ClassCaiYang.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:5k
- using System;
- using System.IO;
- using System.Collections.Generic;
- using System.Text;
- using System.Collections;
- /*
- ' 迅龙中文分类搜索引擎 v0.6
- '
- ' LGPL 许可发行
- '
- ' 宁夏大学 张冬 康彩 zd4004@163.com
- '
- ' 官网 http://blog.163.com/zd4004/
- */
- namespace XunLong.binAutoModelTeam
- {
- class ClassCaiYang
- {
- /// <summary>
- /// 目录列表队列
- /// </summary>
- ArrayList LIST = new ArrayList();
- /// <summary>
- /// 文件系统对象
- /// </summary>
- NetHashTableAPI.ClassNHT db = new NetHashTableAPI.ClassNHT();
-
- /// <summary>
- /// 文件保存路径
- /// </summary>
- public string savePath;
- /// <summary>
- /// 读取各个模版 记录和存储 第一个采样的url 和 模板名称(由原始模板数据MD5生成)
- /// </summary>
- public void Init(string filePath, string savePathX, string k_c_path)
- {
- db.SetClassNHT(filePath, 3145727, k_c_path);
- LIST = db.SearchOneList("http:");
- Console.WriteLine(" 共有 ==>> " + LIST.Count.ToString()+" 条数据");
- savePath = savePathX;
- }
- public void Run()
- {
- int BN = 0;
- if (System.IO.File.Exists(savePath) == true)
- {
- System.IO.File.Delete(savePath);
- }
- while (LIST.Count > 0)
- {
- //取出第一个
- string a_one = LIST[0].ToString();
- LIST.Remove(a_one);
- // key = url val = 相似度 >12
- Hashtable TMP_H = new Hashtable();
-
- //建模的等级 从高到低
- for (int i = 0; i < LIST.Count; i++)
- {
- int n1 = XunLong.UrlStringLib.ClassUrlString.Url2Url(a_one, LIST[i].ToString());
- if (n1 >= 12)
- {
- TMP_H.Add(LIST[i],n1);
- }
- }
- for (int u = 50; u >= 12; u--)
- {
- ArrayList TMP = new ArrayList();
- TMP.Clear();
- foreach (System.Collections.DictionaryEntry de in TMP_H)
- {
- if ((int)de.Value >= u)
- {
- TMP.Add(de.Key);
- }
- }
- if (TMP.Count >=64) //个数大于36 等级最高的
- {
- foreach (string b_a in TMP)
- {
- LIST.Remove(b_a);
- TMP_H.Remove(b_a);
- }
- //写入一条数据
- putmOLDMODELSOURCEFileData(savePath, a_one);
- BN = BN + 1;
- Console.WriteLine("-建模等级->" + u.ToString());
- Console.WriteLine("-共识别出可模版化数据-> " + BN.ToString() + " 条");
- goto x_NEXT; //只取符合条件 等级最高的
- }
- }
- if (LIST.Count % 10 == 0)
- {
- Console.Write(" " + LIST.Count.ToString());
- }
- x_NEXT: ;
- }
- Console.WriteLine("识别完毕");
- Console.WriteLine("数据保存在: ");
- Console.WriteLine(savePath);
- }
- /// <summary>
- /// 写入已经使用过的一条数据 xxx-->> 相对于设置列表 olgurl
- /// </summary>
- /// <param name="filename">文件名</param>
- /// <param name="data">数据</param>
- /// <param name="isApp">是否追加模式</param>
- public void putmOLDMODELSOURCEFileData(string okPath, string data)
- {
- StreamWriter writer = null;
- try
- {
- writer = new StreamWriter(okPath, true, System.Text.Encoding.GetEncoding("gb2312"));
- // writer.Write(data);
- writer.WriteLine(data);
- writer.Close();
- }
- catch (IOException e)
- {
- Console.WriteLine(e.Message);
- }
- finally
- {
- if (writer != null)
- writer.Close();
- }
- }
- }
- }