2006年7月8日
<input type=button value=剪切 onclick=document.execCommand('Cut')>
<input type=button value=拷贝 onclick=document.execCommand('Copy')>
<input type=button value=粘贴 onclick=document.execCommand('Paste')>
<input type=button value=撤消 onclick=document.execCommand('Undo')>
<input type=button value=重做 onclick=document.execCommand('Redo') id=button2 name=button2>
<input>
<input type=button value=删除 onclick=document.execCommand('Delete')>
<input type=button value=黑体 onclick=document.execCommand('Bold')>
<input type=button value=斜体 onclick=document.execCommand('Italic')>
<input type=button value=下划线 onclick=document.execCommand('Underline')>
<input type=button value=停止 onclick=document.execCommand('stop')>
<input type=button value=保存 onclick=document.execCommand('SaveAs')>
<input type=button value=另存为 onclick=document.execCommand('Saveas',false,'c:\\test.htm')>
<input type=button value=字体 onclick=document.execCommand('FontName',false,fn)>
<input type=button value=字体大小 onclick=document.execCommand('FontSize',false,fs)>
<input type=button value=刷新 onclick=document.execCommand('refresh',false,0)>
posted @ 2006-07-08 12:54 dahai.net 阅读(966) | 评论 (0)编辑
  2006年7月6日

<FIELDSET style="WIDTH: 550px; HEIGHT: 53px"><LEGEND>标题</LEGEND>&nbsp;&nbsp; 这里写内容<BR></FIELDSET>

 

 

标题   这里写内容
posted @ 2006-07-06 22:40 dahai.net 阅读(49) | 评论 (0)编辑
  2006年7月3日
--修改所有用户表/存储过程/视图/触发器/自定义函数的所有者为dbo,则用游标(不要理会错误提示)  
   
  declare   tb   cursor   local   for  
  select   'sp_changeobjectowner   ''['+replace(user_name(uid),']',']]')+'].['  
  +replace(name,']',']]')+']'',''dbo'''  
  from   sysobjects    
  where   xtype   in('U','V','P','TR','FN','IF','TF')   and   status>=0  
  open   tb  
  declare   @s   nvarchar(4000)  
  fetch   tb   into   @s  
  while   @@fetch_status=0  
  begin  
  exec(@s)  
  fetch   tb   into   @s  
  end  
  close   tb  
  deallocate   tb  
  go  
posted @ 2006-07-03 17:24 dahai.net 阅读(142) | 评论 (0)编辑
收费单位 收费项目 收费金额 办事时间
新区工商局 名称核准 ¥100.00 1
会计师事务所 验资(安信) ¥500.00 0.5
市区工商局 验资手续费 ¥20.00 0.5
新区科技局 资料核准 ¥100.00 0.5
工商局 营业执照 ¥180.00 7
公安局 公章、财务章 ¥380.00 3
质监局 代码证 ¥253.00 5
新区地税 税务登记证 ¥23.00 7
海谊雕刻社 发票专用章 ¥60.00 2
       
合计   ¥1,616.00 26.5
posted @ 2006-07-03 13:04 dahai.net 阅读(181) | 评论 (0)编辑
  2006年5月30日


    前几天渗透了某大型网站,兴奋中。拿到WebShell后,第一个念头就是提升权限,把偶亲爱的后门挂到系统里。熟练的打开CMD,输入NET USER.

    不是好兆头,接着在WSCRIPT组件前打钩,再次执行NET USER.

    提示倒是换了,但是结果一样。接着偶想到了上传CMD.EXE,但是Windows 2003的上传在默认时是有限制的,不能大于200K,于是我上传了经典的Serv-U本地溢出程序,使用在Windows 2000下没有禁用WSCRIPT时的无敌调用提权大法。

    其实就是在调用CMD的地方写上本地溢出程序的路径及参数,一般在没有禁止WSCRIPT组件时,此法的成功率很高。但是结果依然是“禁止访问”,看来Windows 2003在默认情况下,安全性比Windows 2000默认时要强许多。失望之余,想到干脆去首页挂个马吧,最近正在玩PcShare,嘿嘿。跑到首页,加入偶的木马代码,点保存,“没有权限”,偶倒!太BT了吧?连修改首页的权限都没?管理员一定是把IIS用户降低到了GUEST组,或者给IIS目录单独设置了一个GUEST组的用户,并去掉了修改文件的权限。上帝太不公平了,怎么说都是偶辛辛苦苦搞来的Shell啊,现在一点用都没有!

    没办法,看看服务器里有啥好东西吧。翻来翻去,忽然眼前一亮:在某个目录里发现了congif.aspx文件。写到这里各位以为偶是要使用SA账号,通过SQLROOTKIT执行系统命令吧?错,偶看过了,账号不是SA权限的,是PU权限,什么都不能做,而且也不属于本文的介绍范围。偶注意的“ASPX”这个后缀,在默认安装情况下,IIS 6.0是支持。net的,也就是ASPX文件,但是在IIS 6.0里,ASP和ASPX两个扩展使用的却是2个不同的用户角色,ASP使用的是IUSER用户,管理员一般都比较注意这个账号,害怕被提升权限,所以把权限都降低到了GUEST,所以在ASP的WebShell里什么也不能做了。但是网管往往忽略了ASPX!由于。net使用的系统账号是ASPNET,而在默认情况下,这个账号是属于USER组的,这样我们上传一个。NET的后门上去,会以USER组的用户ASPNET执行命令,权限会有很大的提高,就可以提权了!

    说做就做,立即上传了一个ASPX的后门上去,打开CMD模块执行NET USER.

    哇哈哈,果然不出偶所料,终于可以执行CMD了!来看看权限,输入“net localgroup guests”。

    看到了吧?刚才我们在AspWebShell中使用的账号是IUSER_WEBSITE,属于GUESTS组,难怪什么权限都没有呢。再来看一下USERS组。

    ASPNET就是现在我们的AspxShell使用的账号,权限是USERS,比Guest大好多,嘿嘿!

    其实这并不算是什么漏洞,只是由于管理员粗心大意造成的隐患而已。算是提升权限的一个思路吧。如果管理员把ASPNET也降低权限,或者删除ASPX这个扩展,本文的方法就不管用了,不过这样的管理员到目前我还没遇到过。总之,整体安全才是最重要的。不要放过每一个细节。

posted @ 2006-05-30 22:23 dahai.net 阅读(171) | 评论 (0)编辑
  2006年5月29日
posted @ 2006-05-29 17:43 dahai.net 阅读(38) | 评论 (0)编辑
  2006年5月25日

ivy_live521(原作)

断点续传的原理
在了解HTTP断点续传的原理之前,先来说说HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种。请求协议是由客户机(浏览器)向服务器(WEB SERVER)提交请求时发送报文的协议。回复协议是由服务器(web server),向客户机(浏览器)回复报文时的协议。请求和回复协议都由头和体组成。头和体之间以一行空行为分隔。
以下是一个请求报文与相应的回复报文的例子:
GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 24 Jun 2003 05:39:40 GMT
Content-Type: image/jpeg
Accept-Ranges: bytes
Last-Modified: Thu, 23 May 2002 03:05:40 GMT
ETag: "bec48eb862c21:934"
Content-Length: 2827
….

下面我们就来说说“断点续传”。
顾名思义,断点续传就是在上一次下载时断开的位置开始继续下载。在HTTP协议中,可以在请求报文头中加入Range段,来表示客户机希望从何处继续下载。
比如说从第1024字节开始下载,请求报文如下:

GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Range:bytes=1024-
Connection: Keep-Alive

 .NET中的相关类
明白了上面的原理,那么,我们来看看.NET FRAMEWORK中为我们提供了哪些类可以来做这些事。

完成HTTP请求
System.Net.HttpWebRequest

HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。

HttpWebRequest 将发送到 Internet 资源的公共 HTTP 标头值公开为属性,由方法或系统设置。下表包含完整列表。可以将 Headers 属性中的其他标头设置为名称/值对。但是注意,某些公共标头被视为受限制的,它们或者直接由 API公开,或者受到系统保护,不能被更改。Range也属于被保护之列,不过,.NET为开发者提供了更方便的操作,就是 AddRange方法,向请求添加从请求数据的开始处或结束处的特定范围的字节范围标头

完成文件访问
System.IO.FileStream

FileStream 对象支持使用Seek方法对文件进行随机访问, Seek 允许将读取/写入位置移动到文件中的任意位置。这是通过字节偏移参考点参数完成的。字节偏移量是相对于查找参考点而言的,该参考点可以是基础文件的开始、当前位置或结尾,分别由SeekOrigin类的三个属性表示。


代码实现
了解了.NET提供的相关的类,那么,我们就可以方便的实现了。

代码如下:

static void Main(string[] args)
              
{
                     
string StrFileName="c:\\aa.zip";      //根据实际情况设置
                     string StrUrl="http://www.xxxx.cn/xxxxx.zip";   //根据实际情况设置


                     
//打开上次下载的文件或新建文件
                     long lStartPos =0;
                     System.IO.FileStream fs;
                     
if (System.IO.File.Exists(StrFileName))
                     
{
                            fs
= System.IO.File.OpenWrite(StrFileName);
                            lStartPos
=fs.Length;
                            fs.Seek(lStartPos,System.IO.SeekOrigin.Current);   
//移动文件流中的当前指针
                     }

                     
else
                     
{
                            fs 
= new System.IO.FileStream(StrFileName,System.IO.FileMode.Create);
                            lStartPos 
=0;
                     }

                     
//打开网络连接
                     try
                     
{
                            System.Net.HttpWebRequest request 
=(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(StrUrl);
                            
if ( lStartPos>0)
                                   request.AddRange((
int)lStartPos);    //设置Range值
                            
//向服务器请求,获得服务器回应数据流
                            System.IO.Stream ns= request.GetResponse().GetResponseStream();
                            
byte[] nbytes = new byte[512];
                            
int nReadSize=0;
                            nReadSize
=ns.Read(nbytes,0,512);
                            
while( nReadSize >0)
                            
{
                                   fs.Write(nbytes,
0,nReadSize);
                                   nReadSize
=ns.Read(nbytes,0,512);
                            }

                            fs.Close();
                            ns.Close();
                            Console.WriteLine(
"下载完成");
                     }

                     
catch(Exception ex)
                     
{
                            fs.Close();
                            Console.WriteLine(
"下载过程中出现错误:"+ex.ToString());
                     }

              }

 
posted @ 2006-05-25 19:32 dahai.net 阅读(93) | 评论 (0)编辑
  2006年5月9日

' Make connections to WMI, to the IIS namespace on MyMachine, and to the Web service.
set locatorObj = CreateObject("WbemScripting.SWbemLocator")
set providerObj = locatorObj.ConnectServer("MyMachine", "root/MicrosoftIISv2")
set serviceObj = providerObj.Get("IIsWebService='W3SVC'")
 
' Build binding object, which is a required parameter of the CreateNewSite method.
' Use the SpawnInstance WMI method since we are creating a new instance of an object.
Bindings = Array(0)
Set Bindings(0) = providerObj.get("ServerBinding").SpawnInstance_()
Bindings(0).IP = ""
Bindings(0).Port = "8383"
Bindings(0).Hostname = ""
 
' Create the new Web site using the CreateNewSite method of the IIsWebService object.
Dim strSiteObjPath
strSiteObjPath = serviceObj.CreateNewSite("MyNewSite", Bindings, "C:\Inetpub\Wwwroot")
If Err Then
WScript.Echo "*** Error Creating Site: " & Hex(Err.Number) & ": " & Err.Description & " ***"
WScript.Quit(1)
End If
 
' strSiteObjPath is in the format of IIsWebServer='W3SVC/1180970907'
' To parse out the absolute path, W3SVC/1180970907, use the SWbemObjectPath WMI object.
Set objPath = CreateObject("WbemScripting.SWbemObjectPath")
objPath.Path = strSiteObjPath
strSitePath = objPath.Keys.Item("")
 
' Set some properties on the root virtual directory which was created by CreateNewSite.
Set vdirObj = providerObj.Get("IIsWebVirtualDirSetting='" & strSitePath & "/ROOT'")
vdirObj.AuthFlags = 5 ' AuthNTLM + AuthAnonymous
vdirObj.EnableDefaultDoc = True
vdirObj.DirBrowseFlags = &H4000003E ' date, time, size, extension, longdate
vdirObj.AccessFlags = 513 ' read, script
vdirObj.AppFriendlyName = "Root Application"
 
' Save the new settings to the metabase
vdirObj.Put_()
 
' CreateNewSite does not start the server, so start it now.
Set serverObj = providerObj.Get(strSiteObjPath)
serverObj.Start
 
WScript.Echo "A New site called MyNewSite was created with the path and unique site identification number of " & strSitePath

posted @ 2006-05-09 20:05 dahai.net 阅读(145) | 评论 (0)编辑
  2006年4月13日

CHM格式有一个初始化头,占38H字节,后面是header section和到正文 段的偏移量。加在一起,这些被称为文件头。
header section一共有两个section,一个是文件目录,另一个包含着文件长度和一些未知信息。
初始化头:
前四个字节为ITSF,第二个双字为版本信息,第三双字是文件头的总长度,第四双字值为1,第五双字是一个时间记录,(第一个字节是MSB,第二个字节是fractional seconds(second byte),第三个字节可并不确定,第四个字节仅能知道其符号位是确定的。)第六双字是windows语言ID标识,后面16个字节是两个连续的组ID,分别为{7C01FD10-7BAA-11D0-9E0C-00A0-C922-E6EC}
和{7C01FD11-7BAA-11D0-9E0C-00A0-C922-E6EC}
后面是header section的表,其中有两项,每项占16个字节,记录着从文件头开始的偏移量和section的长度,各占8个字节。
后面还有8个字节的信息,这些在版本2里是没有的。
header section 0:
第一双字:0x01fe
第三双字为文件大小
共占5个双字,其余双字均为0
header section 1(directory header)
开始的四个字节为ITSP,
后面的双字为版本号,
第三双字为本section长度,
第四双字信息未知,
第五双字值为0x1000,是目录块的大小,
第六双字是quickref section的“密度”,一般是2
第七双字是索引树的深度,1表示没有索引,2表示有一层的PMGI数据块。
第八双字表示根索引的块号,如果没有索引为-1
第九双字是第一个PMGL(listing)的块号
第十双字是最后一个PMGL的块号
第十一双字是-1
第十二双字是目录块的块数
第十三双字是windows语言ID标识
从这里开始有16个字节的GUID{5D02926A-212E-11D0-9DF9-00A0C922E6EC}
然后四个双字不知道是什么东西
本段共84个字节
从这里开始往后都是数据块,分为两种,一种是列表块(listing chunks),一种是索引块(index chunks)其中列表块的格式如下:
开始是四个字节PMGL
然后的四个字节是目录块尾部的空白区的长度或是quickref区域的长度
第三双字恒为0
第四双字是前一个列表块的块号,如果这是第一个块,该值为-1
第五双字是后一个列表块的块号,如果这是最后一块,该值为-1
从这里开始是目录列表项,按文件名排序,并且大小写不分
quickref区是从数据块的后面向前写,每隔n个项出现一个quickref,且n的值为1+(1<<“密度”),其格式从后至前为
第一个字:整个数据块中的项数
第二个字:从第0项到第n项之间的偏移量
第三个字:从第0项到第2n项之间的偏移量
以此类推
目录列表的每一项的格式如下:
encint型名字长度,后面是UTF-8编码的名称,encint型正文段,encint型偏移量,encint型长度,其中偏移量是从解压缩之后的正文段的开始来计算的,同样长度也是表示解压缩之后的长度。
在目录中存在两种文件,用户数据文件和格式信息文件,格式信息文件以两个连续的冒号“::”开头,用户数据文件以“/”开头。
索引块:
前四个字节为PMGI
后面四个字节是块尾部的quickref或是空白区的长度。
从这里开始是目录索引项的开始,每一个目录索引项的结构如下:
encint型的名称长度,UFT-8编码的名称,以此名称开始的列表块的块号。
quickref的格式和排列与列表块中相同
当有索引块的层次较多时,将不再存储数据块号而是存储下一层的索引号。
解释一下encint型变量的编码规则:
一种可变长度的整型变量,第一个字节只使用低7位,最高位为1表示该字节之后的下一字节的低7位要接在这7位的尾部组成一个数,这样通过移位相加的运算,直到遇到最高位为0的字节,可以组和成一个长度可调节的整数。
正文:在版本3中,正文一般紧跟着文件头,而且在文件头表之后有一个双字用来指定其位置。在版本2中,正文部分紧跟着文件头,而且所有此文件夹中的正文部分的第0段放在都放在这个益上,其它的正文段都within content section 0
名称列表文件:
放在content section 0中,文件名为"::DataSpace/NameList",其中包含着所有正文段的名称,其格式如下:
第一个字:以字计数的文件长度
第二个字:文件中的entry数
对于每一个entry格式为:
第一个字:以字计数的名字长度,不包括最后的NULL结尾符
以word 0表示所有entry的结束。
名称的编码类似于UFT-16。
段的名称目前为止只有两种,Uncompressed和MSCompressed,分别表示自解释文件和Microsoft LZX压缩算法压缩的文件。
section data:
对于段号不为0的段,还有一个文件为::DataSpace/Storage/<Section Name>/Content,里面存放着该段的压缩信息,所以,当解析非0段时,需要两步工作,第一步,取得第0段并将其解圧,取得段名,第二步才能利用段名找到相应的段
其余与格式相关的文件:
::DataSpace/Storage/<SectionName>/ControlData
共0x20个字节,存储关于压缩的信息
第一个双字为在“LZXC”串后的双字个数,在版本2中,此值必为6
第二个双字为“LZXC”
第三个双字为版本信息,必须大于2
第四个双字为LZX reset interval
第五个双字为窗口大小
第六个双字为缓存大小
第七个双字为0,未知信息。
::DataSpace/Storage/<SectionName>/SpanInfo
存放着未解压的段的长度信息。
::DataSpace/Storage/<SectionName>/Transform/List
存放GUID列表用于解压缩
压缩段:
这一段用LZX压缩,要进行解压缩,先要读取::DataSpace/Storage/<SectionName>/Transform/{7FC28940-9D31-11D0-9B27-00A0C91E9C7C}/InstanceData/ResetTable,其格式如下:
第一个双字为2,估计是版本信息
第二个双字是reset table中的entry数
第三个双字是8,每一个entry的大小
第四个双字是表头长度
16个字节的压缩前长度
16个字节的压缩后长度
16个字节的0x8000 block size for locations below
16个字节的0
16个字节的第一个非压缩数据块的边界在压缩数据块中的位置信息
注意:
There is one change from LZX as defined by Microsoft: After each LZX reset interval (defined in the ControlData file, but in practice equal to the window size) of compressed data is processed, the LZX state is fully reset, as if an entirely new file was being encoded. This allows semi-random access to the compressed data; you can start reading on any reset interval boundary using the reset interval size and the reset table.

 

posted @ 2006-04-13 13:29 dahai.net 阅读(250) | 评论 (0)编辑
  2006年4月11日

 

        Dim wr As Net.WebRequest = Net.WebRequest.Create(TextBox1.Text)
        
Dim res As Net.WebResponse = wr.GetResponse
        
Dim bmp As New Bitmap(res.GetResponseStream)
        PictureBox1.Image 
= bmp
posted @ 2006-04-11 16:17 dahai.net 阅读(84) | 评论 (0)编辑
  2006年3月27日

问题的发生:
Visual Studio .NET已检测到指定的Web服务器运行的不是ASP.NET 1.1 版 ... ...

通常的解决的方法是从 Windows 的"开始"菜单,指向"程序"、"Visual Studio .NET 2003"、"Visual Studio .NET 工具",然后选择"Visual Studio .NET 命令提示"。在窗口打开后,键入 aspnet_regiis /i。
aspnet_regiis 在单个计算机上管理 ASP.NET 的多个版本的安装和卸载的管理实用工具(1.1.4322.0)
路径:C:\WINNT\Microsoft.NET\Framework\v1.1.4322

但这个错误还没解决。
终于查到microsoft有一个bug,IIS必须要有“默认web站点”,并且其属性中的IP地址为“(全部未分配)”。接下来很简单,我取消分配了的IP,问题就OK了。

posted @ 2006-03-27 12:50 dahai.net 阅读(498) | 评论 (2)编辑
  2006年3月20日


[分享]千万数量级分页存储过程(带效果演示)
效果演示:http://www.cn5135.com/_App/Opportunities/QueryResult.aspx

CREATE PROCEDURE CN5135_SP_Pagination
/*
***************************************************************
** 千万数量级分页存储过程 **
***************************************************************
参数说明:
1.Tables :表名称,视图
2.PrimaryKey :主关键字
3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
4.CurrentPage :当前页码
5.PageSize :分页尺寸
6.Filter :过滤语句,不带Where
7.Group :Group语句,不带Group By
效果演示:http://www.cn5135.com/_App/Opportunities/QueryResult.aspx
***************************************************************/
(
@Tables varchar(1000),
@PrimaryKey varchar(100),
@Sort varchar(200) = NULL,
@CurrentPage int = 1,
@PageSize int = 10,
@Fields varchar(1000) = '*',
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL
)
AS
/*默认排序*/
IF @Sort IS NULL OR @Sort = ''
SET @Sort = @PrimaryKey
DECLARE @SortTable varchar(100)
DECLARE @SortName varchar(100)
DECLARE @strSortColumn varchar(200)
DECLARE @operator char(2)
DECLARE @type varchar(100)
DECLARE @prec int
/*设定排序语句.*/
IF CHARINDEX('DESC',@Sort)>0
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
SET @operator = '<='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) = 0
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
SET @operator = '>='
END
IF CHARINDEX('.', @strSortColumn) > 0
BEGIN
SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
END
ELSE
BEGIN
SET @SortTable = @Tables
SET @SortName = @strSortColumn
END
SELECT @type=t.name, @prec=c.prec
FROM sysobjects o
JOIN syscolumns c on o.id=c.id
JOIN systypes t on c.xusertype=t.xusertype
WHERE o.name = @SortTable AND c.name = @SortName
IF CHARINDEX('char', @type) > 0
SET @type = @type + '(' + CAST(@prec AS varchar) + ')'
DECLARE @strPageSize varchar(50)
DECLARE @strStartRow varchar(50)
DECLARE @strFilter varchar(1000)
DECLARE @strSimpleFilter varchar(1000)
DECLARE @strGroup varchar(1000)
/*默认当前页*/
IF @CurrentPage < 1
SET @CurrentPage = 1
/*设置分页参数.*/
SET @strPageSize = CAST(@PageSize AS varchar(50))
SET @strStartRow = CAST(((@CurrentPage - 1)*@PageSize + 1) AS varchar(50))
/*筛选以及分组语句.*/
IF @Filter IS NOT NULL AND @Filter != ''
BEGIN
SET @strFilter = ' WHERE ' + @Filter + ' '
SET @strSimpleFilter = ' AND ' + @Filter + ' '
END
ELSE
BEGIN
SET @strSimpleFilter = ''
SET @strFilter = ''
END
IF @Group IS NOT NULL AND @Group != ''
SET @strGroup = ' GROUP BY ' + @Group + ' '
ELSE
SET @strGroup = ''
/*执行查询语句*/
EXEC(
'
DECLARE @SortColumn ' + @type + '
SET ROWCOUNT ' + @strStartRow + '
SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
SET ROWCOUNT ' + @strPageSize + '
SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
'
)
GO


 

posted @ 2006-03-20 20:57 dahai.net 阅读(85) | 评论 (1)编辑
  2006年3月8日


1.Ad Clicks 广告点阅次数

中文同意:广告点选次数

访客按下(网页上)广告并被带领到其它网页/网站的次数

如果广告(图档)本身与其超链结(点阅后的去处/目的网站)不在同一网站,Ad Clicks仅就访客点阅广告后「被带离原网站」的事实进行统计,对于访客是否「真正抵达」目的网站并不予考虑。 注:欲分析访客点阅广告后是否真正抵达目的网站,需分析目的网站之日志文件,例如:分析Entry Page(进站网页)、Referring Sites(进站前链结点)或Referring URLs(进站前链结网页) 。

2、Ad Views 广告曝光次数

中文同义:广告浏览次数

英文同义:Ad Impressions

指一个广告(图文件或程序)被成功下载至访客端浏览器中

泛指广告的曝光次数,在访客「看到广告」的情况下,有可能因此而点阅广告产生Ad Clicks ;运用不同的广告传送技术,一个Ad view有可能由1个以上的广告所产生。

3、 Authentication Users 验证登入者

通过网站系统身份验证程序而造访的访客

Authentication是网站用来控管网页内容可以被那些特定访客索阅的一种程序,通常运用在会员制网站居多,WebTrends的分析报告会针对这一部分的访客提列报告。

4、 Click through rate 广告点阅率

中文同义:广告点通率

英文同义:CTR

Ad Clicks与Ad Views之比

这是判断广告是否可以吸引访客点阅的参考指针之一。

5、 Hits 触及

中文同义:触及数、键阅

泛指访客在网站上的一次活动

例如:浏览一篇网页或下载一个档案 。当访客浏览一篇网页时,会向网站发出一次到多次的索阅(request)动作,这些索阅动作会记录至网站系统的日志文件(Log files)。例:访客向网站索阅1篇含有3个图档的网页,网站系统日志文件中至少会有4笔读取记录,在网站分析报告中会以4个hits加以表示。

6、 Home Page Hits 首页触及

7、International Visitor Sessions 国际访客人次

根据造访者网域名称国码所计算的国际访客人次

只有在激活DNS LOOKUP且解析出网域名称时才予计算;注册于上层网域(Top Level Domain)之国内网域,经自行定义于判别数据库时,将视为国内访客加以计算人次(例如: hinet.net 、era.net)。

8、Log File 日志文件

由Web 或 Proxy server所产生的记录文件。由于日志文件完整记录着网站或代理服务器上的所有存取状况,WebTrends分析报告所得到的数据与结果完全根据日志文件记录而得。

9、 Document Views 文件浏览数

文件网页被访客索阅的次数 。

例:访客向网站索阅1篇含有3个图档的网页,网站系统日志文件中将会有4笔读取记

录/触及(Hits),如果该网页并非动态网页,则网站分析报告中会以1个Document

Views来表示网页曾经被索阅过1次 Page View的计算范围包括了所有格式的网页,例如:.htm、.html、.asp、.cfm、asa、cdx、htmls、shtm、shtml、txt等等(在WebTrends环境中可自行加入新的格式),但不包括由CGI或动态产生的网页,例如:.asp?id=123。

10、Page Views 网页浏览数

中文同义:网页浏览页次、网页阅读数、页面数、网页阅读

英文同义:Page Impressions

网页(含文件及动态网页)被访客索阅的次数

例:访客向网站索阅1篇含有3个图档的网页,虽然网站系统日志文件中也会有4笔读

取记录/触及(Hits),但在网站分析报告中会以1个Page Views来表示网页曾经被索

阅过1次 Page View的计算范围包括了所有格式的网页,例如:.htm、.html、.asp、.cfm、

asa、cdx、htmls、shtm、shtml、txt等等(在WebTrends环境中可自行加入新的格

式),也包括了由CGI或动态产生的网页,例如:.asp?id=12。

11、Referring Sites 进站前链结点

访客造访以前所到过的网站

即访客因为点下某一网站的超链结因而造访。

12、Referring URLs 进站前链结网页

访客造访以前所到过的网页

即访客因为点下某一网页的超链结因而造访。

13、Successful Hits 成功触及

扣除「失败触及」的触及数总和

例:访客向网站索阅1篇含有3个图档的网页,其中有一个图档并未显像(呈现红色),虽然网站系统日志档中也会有4笔读取记录,但在网站分析报告中会以3个Successful Hits 来表示。

14、Unique Visitors 绝对造访人次

中文同义:独一访客、绝对访客

泛指发生同一(Visitor Sessions)访客,即同一造访者;此数值的判定系根据造访者IP地址或以cookie辨识访客而计算得之 。

15、Visitor Sessions from (local) 本地访客人次

根据造访者网域名称国码所计算的本地访客人次

只有在启动DNS LOOKUP且解析出网域名称时才予计算。

16、 Visitor Sessions 访期

中文同义:造访人次 、造访期间

英文同义:User Sessions、Visitors

访客在网站上持续活动(索阅)的某一段期间

自访客第1次发出索阅至最后发出索阅(离开网站)的某一段期间称之为Visitor Sessions/User Sessions。此计算单位主要用于下列情况: 当访客造访后且完成第1次索阅时又立即离线(离开网站或关闭浏览器),随后在Visitor Session Length(访期长短)规定的时间范围内(例:30分钟)又再次造访网站进行索阅,对于这样的现象,网站分析报告不会将之视为2个造访人次,而仅视为1个造访人次。反之,如果访客第1次造访与第2次造访的时间超过Visitor Session Length(访期长短)规定的时间范围,则分析报告将以2个Visitor Sessions来表示。

17、Visitor Session Length 访期长短

英文同义:User Sessions Length

用在计算Visitor Sessions时之计算标准

一般(网际网路)工页标准将Visitor Session Length定为30分钟,亦有少数定为30分钟者,主要用来判定Visitor Sessions。 例:当访客停止活动(索阅网页)的时间超过Visitor Session Length内定值时(譬如:浏览某网页后未进一步索阅其它网页,让浏览器一直开启着,且网站系统未主 动发送网页或图档给访客端),当访客再一次索阅,分析报告将会视为2个Visitor Sessions。

WebTrends的Visitor Session Length预设为30分钟,必要时可自行调整;Visitor Sessions与Visitor Session Length呈反比,当Visitor Session Length较短时,Visitor Sessions会增加。

18、Visitor Sessions of Unknown Origin 其它访客人次

无法以DNS LOOKUP解析出网域国码的访客人次

19、Visitors Who Visited Once 单次造访者人次

报告范围内(Report Range)只造访一次的访客数

20、Visitors Who Visited More Than Once 多次造访者人次

报告范围内(Report Range)多次造访的访客数;配合Visitor Session Length计算得之

21、Average Visitor Session Length 访客平均停留期间

客停留于网站持续活动的平均时间

 

posted @ 2006-03-08 19:11 dahai.net 阅读(67) | 评论 (0)编辑
  2006年1月14日
sp_change_users_login 'report'

'将所有对象所有权给dbo
exec sp_MSForEachTable 'sp_changeobjectowner ''?'',''dbo'''

'选出sa的密码
SELECT CONVERT(VARBINARY(32), password)
   FROM syslogins
   WHERE name = 'sa'
posted @ 2006-01-14 17:34 dahai.net 阅读(85) | 评论 (0)编辑
  2006年1月9日

 

        Dim fs As New FileStream("c:\f.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite)
        fs.Seek(
0, SeekOrigin.End)
        fs.Write(dataBuf, 
0, dataBuf.Length)
        fs.Close()
posted @ 2006-01-09 22:25 dahai.net 阅读(46) | 评论 (0)编辑
  2005年12月30日

韩正忠          曹乐乐
东南大学应用数学系   东南大学软件学院
 

摘要:本文运用以模糊综合评判为核心的理论实现对网页的模糊自动归类,详细阐述了网页模糊归类算法(FWCA),并且通过一个实例阐明了实现过程。作者利用此算法亲自设计实现了一个“网页模糊归类测试系统”,通过分析大量实验数据证明了利用此算法得归类效果非常稳定和准确。
关键词:FWCA  模糊综合评判  网页归类  分类浏览  搜索引擎


 
自有文字和书籍以来,人类就开始注意文章的分门别类和编撰目录。那些目录事实上就将文章按照内容的类别进行了分类。九十年代以来,Internet 以惊人的速度发展起来,Web的容量增长迅速,平均每天增加100万个页面。计算技术发展到今天,靠人来阅读互联网上信息和对网上信息做分门别类和总结已经不可能。
搜索引擎的分类浏览模式由此应运而生。它的目录分类的质量较高,检索效果好;但是需要人工维护,因此存在成本高、信息更新慢、维护的工作量大的缺点。而基于模糊技术的网页自动归类能依据网页中所包含的文本的语义将大量的网页自动分门别类,从而更好地帮助人们把握网络信息。

网页模糊归类步骤与算法
简单地说,网页自动归类所要完成的任务就是在给定的分类体系下,根据网页的内容自动地确定网页关联的类别。如果从纯数学角度来看,网页分类的过程实际上就是一个多对多的映射过程。依据“贝叶斯假设”的内容,可以假定组成网页的元素在确定网页类别的作用上相互独立。这样,可以使用网页中出现的字或词的集合来代替网页,即用一个向量来表示文本:D(W1,W2,W3……Wn),其中 Wi 为第 i 个元素(以下均称为“特征项”)的数值。当然,这将丢失大量关于网页内容的信息,但是这种假设可以使网页的表示和处理形式化,从而让计算机可以处理网页。
构成网页中的文本的词汇,数量是相当大的,因此,表示网页的向量空间的维数也相当大,可以达到几万维,所有几万个词汇对网页分类的意义是不同的。首先,需要考虑词语的性质。一些通用的、各个类别都普遍存在的词汇对分类的贡献是很小的,因此特征提取过程需要去掉对表达网页类别不太重要的词汇。例如“的”、“地”、“得”、“着”、“了”等等。其次,在某特定类中出现比重大而在其他类中出现比重小的词汇对文本分类的贡献大,为了提高分类精度,可以利用词语的互信息量筛选出针对该类的特征项集合。具体操作方法是算出每个词语的互信息量并排序,然后抽取前n个词语作为该类别的特征项,抽取的原则是反复试验使得网页归类效果最优。互信息量(I)计算公式由下式给出:

为了让计算机为我们进行网页的自动归类,必须先对计算机进行训练。只要训练网页足够多,那么由计算机进行的归类活动也将是准确的。所有的训练样本都需表示为向量 。并使用每个词的相对词频(TF-IDF 公式)对网页样本的特征项进行量化。然后,将每个类别中的所有训练样本数据合成为一个平均参照样本,计算方法就是将每个特征项的值求算术平均。相对词频计算公式由下式给出:

在归类过程中,采用三级模糊综合评判。一级指标因素集(网页中出现位置)包括:网页题名、文章标题、第一段首句、第一段尾句、第二段首句、第二段尾句、第三段首句、第三段尾句、首段、尾段、HTML标记。二级指标因素集(词性)包括:名词, 动词, 形容词, 副词, 介词, 连词, 助词, 数字, 符号。三级指标因素集:待分类网页中所包含的全部词语的频数。评价集确定为V={V1(不属于0), V2(不太可能属于0.25), V3(可能属于0.5), V4(很可能属于0.75), V5(属于1)}。
专家随机抽取了300篇网页,对这些网页进行人工自由标引、人工打分、词频统计,并进行统计数据的分析、研究,将一级指标因素权重集确定为A={0.128, 0.128, 0.128, 0.104, 0.104, 0.104, 0.06, 0.06, 0.06, 0.06, 0.05, 0.05};根据语言学专家对各类别中不同词性的词语对标志一个类别(以中图分类法为标准)重要性程度统计和评分,将二级指标因素权重集确定为An={0.28, 0.18, 0.24, 0.06, 0.05, 0.04, 0.04, 0.06, 0.05};根据词语的互信息量确定出三级指标因素权重为Anm={Anm1, Anm2 … Anmx}  其中,Anmx即为对应词语的互信息量
隶属函数采用卡夫曼教授提出的隶属函数确定方法(正态分布模型)确定如下:
①      词频针对“不属于”的隶属函数
 
②      词频针对“不太可能属于”的隶属函数
 
③      词频针对“不可能属于”的隶属函数
 
④ 词频针对“很可能属于”的隶属函数
 
⑤      频针对“属于”的隶属函数
 
其中,axyz是训练样本中词语的相对词频;x为样本网页中对应词的统计词频;系数是通过人工评判得到一些特殊点,由待定系数法求出的。
下面就要根据多级模糊综合评判的计算方法与步骤将待归类网页与所有类别的平均参照样本进行一遍计算,得出一组表示该网页与各个类别贴近度的数值。然后按照“最大隶属原则”,将网页划到Vn值最大的对应的类别中;或者用“域值法”,事先确定一个不大于1的域值λ,若Vn>λ则认为网页属于此类别,因此,一个网页可能同时属于多个类别。

网页模糊归类实例
(1).前期工作
•简化的分类的标准:经济类,体育类,科教类
•训练样本数目:48篇(三类各16篇)
•待归类网页:


•一级指标因素及权重:U={U1=0.5, U2=0.5}
•二级指标因素及权重:U1={U11=1.0 }
                      U2={U21=0.4}, U22=0.26), U23=0.34 }
•三级指标因素及权重:
U11={U111=0.86}, U112=0.14)}
    U21={U211=0.11, U212=0.35, U213=0.21, U214=0.06, U215=0.10, U216=0.17}
    U22={U221=0.26, U222=0.38, U223=0.36}
    U23={U231=0.46, U232=0.54}
•经济类训练网页样本相对词频:
a11={a111(经济1.2), a112(快讯1.2)}
    a21={a211(我国1.1), a212(经济2.2), a213(水平1.8), a214(三年0.5), a215(人民0.9), a216(生活1.3)}
    a22={a221(实现1.3), a222(翻番1.8), a223(提高1.7)}
    a23={a231(连续1.6), a232(日益1.7)}

(2).模糊综合评判
首先统计待分类网页的各个词语的绝对词频如下:
U11={U111(经济1), U112(快讯1)}
U21={U211(我国1), U212(经济2), U213(水平1), U214(三年1), U215(人民1), U216(生活1)}
U22={U221(实现1), U222(翻番1), U223(提高1)}
U23={U231(连续1), U232(日益1)}
总共可以得到4个一级模糊综合评判矩阵如下:
 
 
 
 
构造二级模糊综合评判矩阵
①采用M(∧,∨)算子的运算结果
   
②采用M(•, )算子的运算结果
 
 
构造三级模糊综合评判矩阵
①采用M(∧,∨)算子的运算结果
 
②采用M(•, )算子的运算结果
 
多因素综合评判
①采用M(∧,∨)算子的运算结果
 
 
②采用M(•, )算子的运算结果
 
 
网页归类决策
通过三轮计算得出下表:
样本与类别贴近度      经济类      体育类      科教类
采用M(∧,∨)算子      0.68      0.31      0.42
采用M(•, )算子
0.80      0.16      0.27

不管采用哪一种算子,如果用“最大隶属原则”判断,显然都应该属于“经济类”;如果用“域值法”(λ=0.6)判断,也应该都属于“经济类”。

结果分析
由上述算例可以看出,若用“最大隶属原则”判断,取λ=0.68,采用M(∧,∨)算子的算法就无法对此网页归类了,而采用M(•, )算子却可以对网页正确归类。另外,采用M(•, )算子的结果区分效果比较明显,与人工归类的结果比较接近。由此可见,采用M(•, )算子的算法明显优于采用M(∧,∨)算子的算法。
本文的实例网页最后得出的与“经济类”网页的贴近值仅0.8,比理想值(人工估计为0.9)偏低了了一些,与其他类别的贴近值也存在一些偏差。这是因为本文中举的例子为了简单起见,训练文本才48篇,导致计算机训练不足;另外,待归类网页过于简单。这些都导致了归类结果与理想值的偏差,在实际情况下,这些问题都可以避免。
作者在自行开发的“网页模糊归类测试系统”平台上作了大量对于网页的归类测试工作 (详见附录) ,测试文档与训练网页都是取自“中国新闻网”新闻网页。在训练网页达到1200篇的时候,归类准确率封闭测试为85.73%,开放测试为78.82%。虽然这种以模糊综合评判为核心的算法实现的系统初始化工作比较繁重,但是归类的结果准确率很高,因此还是非常具有实际应用价值的。


参考文献
[1]      卜东波. 聚类/分类理论研究及其在大规模文本挖掘中的应用, 北京:中国科学院计算技术研究所, 2000.
[2]      边肇祺, 张学工. 模式识别(第二版), 北京:清华大学出版社, 2000, 83-159, 284-300.
[3]      韩正忠, 方宁生. 模糊数学应用, 南京:东南大学出版社 2003.2
[4]      刘智颖. 自然语言理解与机器翻译, 清华大学出版社 2001.7
[5]      刘祖根. 基于WordNet的文本分类技术研究和实现, 长江大学 2002
[6]      庞剑锋, 卜东波, 白硕. 基于向量空间模型的文本自动分类系统的研究与实现, 计算机应用研究, 2001, 9(9): 23-26.
[7]      刘增良. 模糊技术与应用选编, 北京航空航天大学出版社, 1997.2(1) ISBN 7-81012-691-1
[8]      孙贻源. 模糊数学, 华中工学院出版社, 1984
[9]      张俊福. 应用模糊数学, 地质出版社, 1988.11
posted @ 2005-12-30 20:07 dahai.net 阅读(209) | 评论 (0)编辑
搜索引擎的实现原理,可以看作四步:从互联网上抓取网页→建立索引数据库→在索引数据库中搜索→对搜索结果进行处理和排序。
      1、从互联网上抓取网页
      利用能够从互联网上自动收集网页的“网络蜘蛛”自动访问互联网,从互联网上抓取网页,把网页送入“网页数据库”,从网页中“提取URL”,把URL送入“URL数据库”,“蜘蛛控制”得到网页的URL,控制“网络蜘蛛”抓取其它网页,反复循环直到把所有的网页抓取完成。
      2、建立索引数据库
      由索引系统程序对收集回来的网页进行分析,从“网页数据库”中得到文本信息,送入“文本索引”模块建立索引,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系,标题,来源,类别,是否已经被解析等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库,形成“索引数据库”。同时进行“链接信息提取”,把链接信息(包括锚文本、链接本身等信息)送入“链接数据库”,为“网页评级”提供依据。
      数据的索引分为三个步骤:网页内容的提取、词的识别、标引库的建立。
      互联网上大部分信息都是以HTML格式存在,对于索引来说,只处理文本信息。因此需要把网页中文本内容提取出来,过滤掉一些脚本标示符和一些无用的广告信息,同时记录文本的版面格式信息。
      词的识别是搜索引擎中非常关键的一部分,通过字典文件对网页内的词进行识别。对于西文信息来说,需要识别词的不同形式,例如:单复数、过去式、组合词、词根等,对于一些亚洲语言(中文、日文、韩文等)需要进行分词处理。识别出网页中的每个词,并分配唯一的wordID号,用于为数据索引中的标引模块服务。
      标引库的建立是数据索引中结构最复杂的一部分。一般需要建立两种标引:文档标引和关键词标引。文档标引分配每个网页一个唯一的docID号,根据docID标引出在这个网页中出现过多少过wordID,每个wordID出现的次数、位置、大小写格式等,形成docID对应wordID的数据列表;关键词标引其实是对文档标引的逆标引,根据wordID标引出这个词出现在那些网页(用wordID表示),出现在每个网页的次数、位置、大小写格式等,形成wordID对应docID的列表。
      3、在索引数据库中搜索
      搜索的处理过程是对用户的搜索请求进行满足的过程,当用户输入关键词搜索后,通过提交查询请求给“查询服务器”,搜索服务器对应关键词字典,把搜索关键词转化为wordID,然后在标引库中得到docID列表,对docID列表进行扫描和wordID的匹配,从网页“索引数据库”中找到符合该关键词的所有相关网页。
      4、对搜索结果进行处理排序
      所有相关网页针对该关键词的相关信息在索引库中都有记录,“网页评级”把查询请求和链接信息结合起来对搜索结果进行相关度的评价,通过“查询服务器”按照相关度进行排序,返回前K篇结果(不同的搜索引擎每页的搜索结果数不同)返回给用户。如果用户查看的第二页或者第多少页,重新进行搜索,把排序结果中在第K+1到2*K的网页组织返回给用户。相关度越高,排名越靠前,同时提取关键词的内容摘要。最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
posted @ 2005-12-30 19:08 dahai.net 阅读(248) | 评论 (0)编辑
  2005年12月29日

这几个月作手机短信的项目,碰到了很多字符编码的问题,真头痛。经过多番资料的搜索、亲手尝试和高人的指点,现在好像没那么迷惘了。现作了一些总结跟大家分享(有误之处请指点)

  首先应该把字节数组看成是String的载体。
  dot Net使用的字符串String是Unicode编码的;它也是以Unicode编码的形式显示字符串。

  以下是用自己语言对几个常用函数的说明:
  (自己总结的,反正看不明MSDN)
  bytes=System.Text.Encoding.Unicode.GetBytes(str)
  作用:把str的载体作Unicode->Unicode的编码转换--也就是没有对载体作任何的转换。因些使用此函数可以得代表该String载体的字节数组。
  str=System.Text.Encoding.Unicode.GetString(bytes)
  作用:对字节数组作Unicode->Unicode的编码转换--即没有转换,把经过转换后的字节数组作为str的载体。

  bytes=System.Text.Encoding.Utf8.GetBytes(str)
  作用:把str的载体作Utf8->Unicode的编码转换。返回的是经过转换后的字符数组
  str=System.Text.Encoding.Utf8.GetString(bytes)
  作用:对字节数组作Gb2312->Unicode的编码转换,把经过转换后的字节数组作为str的载体。

  bytes=System.Text.Encoding.GetEncoding("GB2312").GetBytes(str)
  作用:把str的载体作Gb2312->Unicode的编码转换。返回的是经过转换后的字符数组
  str=System.Text.Encoding.GetEncoding("GB2312").GetString(bytes)
  作用:对字节数组作Gb2312->Unicode的编码转换,把经过转换后的字节数组作为str的载体。

如此类推
  bytes=System.Text.Encoding.GetEncoding("XXX").GetBytes(str)
  作用:把str的载体作XXX->Unicode的编码转换。返回的是经过转换后的字符数组
  str=System.Text.Encoding.GetEncoding("XXX").GetString(bytes)
  作用:对字节数组作XXX->Unicode的编码转换,把经过转换后的字节数组作为str的载体。

这里是我收集的一些有关字符编码的资料:http://61.145.116.154/bm/
还有:
http://www.unicode.org/charts/unihan.html
根据Unicode编码查其对应字符的字形、Utf8、汉字区位码等
http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/GB/GB2312.TXT Unicode与Gb2312的对照表
http://www.sun.com/developers/gadc/technicalpublications/articles/mabiao.txt
Unicode与Gbk对照表

posted @ 2005-12-29 13:05 dahai.net 阅读(163) | 评论 (0)编辑
  2005年12月28日


一种快速的未登陆词识别方法(原理和实现) 一种快速的未登陆词识别方法(原理和实现)    
    最近网络上关于中文分词的算法已经很多了,在实际应用中每个人根据对中文分词的不同理解写了不同的中文分词算法,可谓百花齐放.
    但现在似乎还没有针对未登陆词的识别算法,有鉴于此,我特地写了一个,抛砖引玉.

    算法的假设:     1. 未登陆词是由单字组成的;
    2. 如果一个字同时属于2个未登陆词,那么只选择第一被识别的词;

    测试文章:     最近电视剧大长今很火,我就选取了介绍大长今的文章,
    地址:http://www.360doc.com/showWeb/0/0/18183.aspx
    识别结果如下:
        PDH : initialize phrase dictionary
        QuerySpliter reInitialize dictionary.
        长今,职场,闵政浩,韩剧,郑云白,连生,主簿,冷庙高香,义字,医女,张德,剩者,济州,选拨,文秘

    算法原理:     首先找出已经分词后的单字,然后查看单字的下一个是否还是单字,如果是,判断这种情况出现的次数,如果超过预订的阀值,那么就确认这是一个新词.
    下面是一个算法的计算过程展示:
    PDH : initialize phrase dictionary
    QuerySpliter reInitialize dictionary.
    >>>8,9;9,10
    长今
    >>>237,238;238,239
    职场
    >>>595,596;596,597;597,598
    闵政浩
    >>>189,190;190,191
    韩剧
    >>>1111,1112;1112,1113;1113,1114
    郑云白
    >>>599,600;600,601
    连生
    >>>610,611;611,612
    主簿
    >>>975,976;976,977;977,978;978,979
    冷庙高香
    >>>1233,1234;1234,1235
    义字
    >>>559,560;560,561
    医女
    >>>561,562;562,563
    张德
    >>>3114,3115;3115,3116
    剩者
    >>>534,535;535,536
    济州
    >>>580,581;581,582
    选拨
    >>>2071,2072;2072,2073
    文秘
    本算法是在:小叮咚分词的基础上进行的.
    欢迎大家一起交流,改进这个算法.

posted @ 2005-12-28 16:28 dahai.net 阅读(84) | 评论 (0)编辑