﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>聊天机器人--文档</title>
    <description>
    </description>
    <link>http://www.netle.net/docs/rss.xml</link>
    <lastBuildDate>Sun, 20 Jan 2007 02:28:39 GMT+8</lastBuildDate>
    <generator>Netle.net</generator>
    <language>zh-cn</language>
    <copyright>Copyright 1996 - 2005 All Rights Reserved.</copyright>
    <pubDate>Sat, 19 Jan 2007 18:28:39 GMT+8</pubDate>
    <item>
      <title>MSN的类库DotMSN介绍（英文原文）
</title>
      <link>http://www.netle.net/docs/1.htm</link>
      <description>  &lt;div&gt;
          &lt;h3&gt;DotMSN&lt;/h3&gt;
	      &lt;p&gt;DotMSN is an open-source stand-alone class library to provide connectivity   with the MSN Messenger service. The library is built in C# and can therefore be   used by all languages the .NET environment supports. Because of a clean natural   Object-Oriented approach the library is easy to use and implement. DotMSN is   designed to be a flexible, robust and lightweight enhancement to any   application. Applications of DotMSN vary from creating messaging robots to   creating custom clients. If your application needs to communicate through the   messenger service, DotMSN is your tool. &lt;/p&gt;
	      &lt;h3&gt;Features&lt;/h3&gt;
	      &lt;p&gt;The library currently supports the following features: &lt;/p&gt;
	      &lt;ul&gt;
            &lt;li&gt;Connecting / disconnecting with the MSN Messenger service &lt;/li&gt;
	        &lt;li&gt;Setting presence status &lt;/li&gt;
	        &lt;li&gt;Event-based design to notify contact presence status changes &lt;/li&gt;
	        &lt;li&gt;Personal data of a contact &lt;/li&gt;
	        &lt;li&gt;Owner profile details &lt;/li&gt;
	        &lt;li&gt;Automatically synchronizes contact lists and keeps contactlist data up to   date &lt;/li&gt;
	        &lt;li&gt;Creating and changing contactgroups &lt;/li&gt;
	        &lt;li&gt;Convenient enumerating through contacts in different lists &lt;/li&gt;
	        &lt;li&gt;Request or receive conversations &lt;/li&gt;
	        &lt;li&gt;Multiple users in one conversation &lt;/li&gt;
	        &lt;li&gt;Sending and receiving decorated text messages &lt;/li&gt;
	        &lt;li&gt;Sending typing messages &lt;/li&gt;
	        &lt;li&gt;Privacy settings of the contactlist owner &lt;/li&gt;
	        &lt;li&gt;Hotmail mailbox status &lt;/li&gt;
	        &lt;li&gt;Notifications of new mail &lt;/li&gt;
	        &lt;li&gt;Flexible tracing of warnings and errors &lt;/li&gt;
	        &lt;li&gt;File transfers &lt;/li&gt;
	        &lt;li&gt;User display images &lt;/li&gt;
	        &lt;li&gt;Proxy support and custom servers &lt;/li&gt;
	        &lt;li&gt;P2P framework support &lt;/li&gt;
	        &lt;li&gt;Custom extendable DotMSN framework &lt;/li&gt;
	        &lt;li&gt;MSNP9 protocol &lt;/li&gt;
	        &lt;li&gt;Source code provided&lt;/li&gt;
	        &lt;/ul&gt;
	      &lt;p&gt;DotMSN is a stand-alone library. This means there is no interaction with the   official MSN Messenger client and therefore it does not need to be installed   when using DotMSN. Multiple instances of DotMSN can be executed on the same   machine, or even in the same process. Thus making it easy to deploy applications   on a single server. &lt;/p&gt;
	      &lt;p&gt;How does DotMSN integrate with your application? The following diagram makes   clear how DotMSN interacts with your application as well as remote parties. &lt;/p&gt;
	      &lt;p&gt; &lt;/p&gt;
	      &lt;div&gt;&lt;img onclick="javascript:window.open(this.src);" src="http://www.xihsolutions.net/dotmsn/images/workings.png" width="469" onload="javascript:if(this.width&amp;gt;500)this.style.width=500;" /&gt;&lt;/div&gt;
	      &lt;h3&gt;Get DotMSN&lt;/h3&gt;
	      &lt;p&gt;You can download DotMSN at the &lt;a href="http://www.xihsolutions.net/dotmsn/download.html"&gt;download&lt;/a&gt; page. &lt;/p&gt;
	      &lt;/div&gt;
      &lt;/div&gt;</description>
    </item>
    <item>
      <title>MSN Messenger新增两聊天机器人! </title>
      <link>http://www.netle.net/docs/2.htm</link>
      <description>  &lt;DIV&gt;微软上周发布了两个新的聊天机器人，采取了与众不同的方向推荐给用户。而微软的竞争对手AOL，在本月为用户密友列表自动添加了两个AIM的聊天机器人后，却引起了用户的连连抱怨。&lt;/DIV&gt;
&lt;P&gt;　　微软这两个聊天机器人是参考微软的Encarta百科全书和BBC的电视列表来回答问题的。用户可以用这项自动化的服务通过说“hello”并且按照提示进行会话。那些有兴趣的用户可以把&lt;A href="mailto:encarta@conversagent.com"&gt;&lt;FONT color=#3366cc&gt;&lt;U&gt;encarta@conversagent.com&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;和 &lt;A href="mailto:bbcbackstage@hotmail.com"&gt;&lt;FONT color=#3366cc&gt;&lt;U&gt;bbcbackstage@hotmail.com&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;添加到他们的联系人列表中，这样就可以测试这两个聊天机器人了。&lt;BR&gt;&lt;BR&gt;　　BBC的电视列表机器人好像对国内用户用处不大，笔者添加了&lt;A href="mailto:encarta@conversagent.com"&gt;&lt;FONT color=#3366cc&gt;&lt;U&gt;encarta@conversagent.com&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;，问它：who is michael jordan?它居然回答：目前对这个问题的答案不可用，请给它点时间。不过如果问它某个地方的话，它会在聊天窗口右边用地图显示出这个地方来，以下是笔者问它广州在哪里的答案：&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.pconline.com.cn/images/html/viewpic_pconline.htm?http://www.pconline.com.cn/pcedu/softnews/yejie/0512/pic/guangzhou051204.JPG&amp;amp;namecode=pcedu&amp;amp;subnamecode=pcedu_index"&gt;&lt;img src="http://www.pconline.com.cn/pcedu/softnews/yejie/0512/pic/guangzhou051204_thumb.JPG" border=0 onclick="javascript:window.open(this.src);" style="CURSOR: pointer" onload="javascript:if(this.width&gt;500)this.style.width=500;"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=left&gt;来源：huazi817的BLOG &lt;A href="http://blog.sina.com.cn/u/45788636010000v2"&gt;http://blog.sina.com.cn/u/45788636010000v2&lt;/A&gt;&lt;/P&gt; &lt;/DIV&gt;</description>
    </item>
    <item>
      <title>dotnet+xml开发简单聊天机器人</title>
      <link>http://www.netle.net/docs/3.htm</link>
      <description>&lt;div&gt; 做一个智能的聊天机器人并不容易，我这里只是实现了一个很简易的聊天机器人。
          &lt;div&gt;
              &lt;div&gt;   当你和这个机器人聊天的时候，每次机器人会根据你说的话的关键词找到回答的语句。如果找不到就随机的说一句默认语言。数据存储格式是xml。&lt;/div&gt;
            &lt;div&gt;   以下是xml的原文件：&lt;/div&gt;
            &lt;div&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
              &amp;lt;chat&amp;gt;&lt;br /&gt;
                  
              &amp;lt;!--默认的聊天语句--&amp;gt;&lt;br /&gt;
                
              &amp;lt;default&amp;gt;&lt;br /&gt;
                    
              &amp;lt;content&amp;gt;你在哪里？&amp;lt;/content&amp;gt;&lt;br /&gt;
                    
              &amp;lt;content&amp;gt;你还是学生吗？&amp;lt;/content&amp;gt;&lt;/div&gt;
            &lt;div&gt;   .........&lt;/div&gt;
            &lt;div&gt; &amp;lt;/default&amp;gt;&lt;br /&gt;
               
              &amp;lt;!--回答指定关键词的语句序列--&amp;gt;&lt;/div&gt;
            &lt;div&gt;&amp;lt;answer&amp;gt;&lt;/div&gt;
            &lt;div&gt;    &amp;lt;content key=&amp;quot;怪&amp;quot;&amp;gt; 不怪&amp;lt;/content&amp;gt;&lt;br /&gt;
                  
              &amp;lt;content   key=&amp;quot;慢&amp;quot;&amp;gt;是啊，慢&amp;lt;/content&amp;gt;&lt;br /&gt;
                  
              &amp;lt;content   key=&amp;quot;喂&amp;quot;&amp;gt;什么事？&amp;lt;/content&amp;gt;&lt;br /&gt;
                  
              &amp;lt;content   key=&amp;quot;88&amp;quot;&amp;gt;再见&amp;lt;/content&amp;gt;&lt;br /&gt;
                  
              &amp;lt;content   key=&amp;quot;谢&amp;quot;&amp;gt;没什么好谢的&amp;lt;/content&amp;gt;&lt;br /&gt;
                  
              &amp;lt;content   key=&amp;quot;滚&amp;quot;&amp;gt;我不会滚，我会走&amp;lt;/content&amp;gt;&lt;/div&gt;
            &lt;div&gt;......&lt;/div&gt;
            &lt;div&gt;&amp;lt;answer&amp;gt;&lt;br /&gt;
              &amp;lt;/chat&amp;gt;&lt;/div&gt;
            &lt;div&gt;////////////////////////////////////////////////////////////////////&lt;/div&gt;
            &lt;div&gt;以下是主要的源代码：&lt;/div&gt;
            &lt;div&gt;Imports System.Xml&lt;br /&gt;
              Public Class Form1&lt;br /&gt;
                  
              Inherits   System.Windows.Forms.Form&lt;/div&gt;
            &lt;div&gt;#Region &amp;quot; Windows 窗体设计器生成的代码 &amp;quot;&lt;/div&gt;
            &lt;div&gt;    Public Sub New()&lt;br /&gt;
                      
              MyBase.New()&lt;/div&gt;
            &lt;div&gt;        '该调用是 Windows 窗体设计器所必需的。&lt;br /&gt;
                      
              InitializeComponent()&lt;/div&gt;
            &lt;div&gt;        '在 InitializeComponent() 调用之后添加任何初始化&lt;/div&gt;
            &lt;div&gt;    End Sub&lt;/div&gt;
            &lt;div&gt;    '窗体重写 dispose 以清理组件列表。&lt;br /&gt;
                  
              Protected Overloads Overrides Sub   Dispose(ByVal disposing As Boolean)&lt;br /&gt;
                      
              If disposing Then&lt;br /&gt;
                            
              If Not (components Is Nothing) Then&lt;br /&gt;
                                
              components.Dispose()&lt;br /&gt;
                          
              End If&lt;br /&gt;
                      
              End If&lt;br /&gt;
                        
              MyBase.Dispose(disposing)&lt;br /&gt;
                  
              End Sub&lt;/div&gt;
            &lt;div&gt;    'Windows 窗体设计器所必需的&lt;br /&gt;
                  
              Private components As   System.ComponentModel.IContainer&lt;/div&gt;
            &lt;div&gt;    '注意: 以下过程是 Windows 窗体设计器所必需的&lt;br /&gt;
                  
              '可以使用 Windows 窗体设计器修改此过程。&lt;br /&gt;
                    
              '不要使用代码编辑器修改它。&lt;br /&gt;
                  
              Friend WithEvents RichTextBox1 As   System.Windows.Forms.RichTextBox&lt;br /&gt;
                  
              Friend WithEvents TextBox1 As   System.Windows.Forms.TextBox&lt;br /&gt;
                  
              Friend WithEvents Button1 As   System.Windows.Forms.Button&lt;br /&gt;
                    
              &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub   InitializeComponent()&lt;br /&gt;
                      
              Dim resources As   System.Resources.ResourceManager = New   System.Resources.ResourceManager(GetType(Form1))&lt;br /&gt;
                      
              Me.RichTextBox1 =   New System.Windows.Forms.RichTextBox&lt;br /&gt;
                      
              Me.TextBox1 = New   System.Windows.Forms.TextBox&lt;br /&gt;
                      
              Me.Button1 = New   System.Windows.Forms.Button&lt;br /&gt;
                      
              Me.SuspendLayout()&lt;br /&gt;
                        
              '&lt;br /&gt;
                      
              'RichTextBox1&lt;br /&gt;
                      
              '&lt;br /&gt;
                      
              Me.RichTextBox1.Location =   New System.Drawing.Point(0, 0)&lt;br /&gt;
                      
              Me.RichTextBox1.Name =   &amp;quot;RichTextBox1&amp;quot;&lt;br /&gt;
                      
              Me.RichTextBox1.ReadOnly = True&lt;br /&gt;
                        
              Me.RichTextBox1.Size = New System.Drawing.Size(560, 304)&lt;br /&gt;
                        
              Me.RichTextBox1.TabIndex = 2&lt;br /&gt;
                      
              Me.RichTextBox1.Text = &amp;quot;&amp;quot;&lt;br /&gt;
                        
              '&lt;br /&gt;
                      
              'TextBox1&lt;br /&gt;
                      
              '&lt;br /&gt;
                      
              Me.TextBox1.Location = New   System.Drawing.Point(0, 312)&lt;br /&gt;
                      
              Me.TextBox1.Name = &amp;quot;TextBox1&amp;quot;&lt;br /&gt;
                        
              Me.TextBox1.Size = New System.Drawing.Size(456, 21)&lt;br /&gt;
                        
              Me.TextBox1.TabIndex = 0&lt;br /&gt;
                      
              Me.TextBox1.Text = &amp;quot;&amp;quot;&lt;br /&gt;
                        
              '&lt;br /&gt;
                      
              'Button1&lt;br /&gt;
                      
              '&lt;br /&gt;
                      
              Me.Button1.Location = New   System.Drawing.Point(472, 312)&lt;br /&gt;
                      
              Me.Button1.Name = &amp;quot;Button1&amp;quot;&lt;br /&gt;
                        
              Me.Button1.Size = New System.Drawing.Size(72, 24)&lt;br /&gt;
                      
              Me.Button1.TabIndex   = 1&lt;br /&gt;
                      
              Me.Button1.Text = &amp;quot;Enter&amp;quot;&lt;br /&gt;
                      
              '&lt;br /&gt;
                        
              'Form1&lt;br /&gt;
                      
              '&lt;br /&gt;
                      
              Me.AutoScaleBaseSize = New System.Drawing.Size(6,   14)&lt;br /&gt;
                      
              Me.ClientSize = New System.Drawing.Size(560, 341)&lt;br /&gt;
                        
              Me.Controls.Add(Me.Button1)&lt;br /&gt;
                      
              Me.Controls.Add(Me.TextBox1)&lt;br /&gt;
                        
              Me.Controls.Add(Me.RichTextBox1)&lt;br /&gt;
                      
              Me.FormBorderStyle =   System.Windows.Forms.FormBorderStyle.FixedSingle&lt;br /&gt;
                      
              Me.Icon =   CType(resources.GetObject(&amp;quot;$this.Icon&amp;quot;), System.Drawing.Icon)&lt;br /&gt;
                        
              Me.MaximizeBox = False&lt;br /&gt;
                      
              Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
                      
              Me.StartPosition   = System.Windows.Forms.FormStartPosition.CenterScreen&lt;br /&gt;
                      
              Me.Text =   &amp;quot;青蛙王子&amp;quot;&lt;br /&gt;
                      
              Me.ResumeLayout(False)&lt;/div&gt;
            &lt;div&gt;    End Sub&lt;/div&gt;
            &lt;div&gt;#End Region&lt;/div&gt;
            &lt;div&gt;     &lt;/div&gt;
            &lt;div&gt;    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As   System.EventArgs) Handles MyBase.Load&lt;br /&gt;
                      
              readxml()&lt;br /&gt;
                  
              End Sub&lt;/div&gt;
            &lt;div&gt;&lt;br /&gt;
                  
              Dim xmlFile As String = &amp;quot;./robot.xml&amp;quot;&lt;br /&gt;
                  
              Dim chatList As New   ArrayList&lt;br /&gt;
                  
              Dim answerList As New Hashtable&lt;br /&gt;
                  
              Dim random As New   System.Random&lt;/div&gt;
            &lt;div&gt;    Private Sub readxml()&lt;br /&gt;
                      
              Try&lt;br /&gt;
                          
              Dim doc As   XmlDocument = New XmlDocument&lt;br /&gt;
                          
              doc.Load(xmlFile)&lt;br /&gt;
                            
              Dim nodeList As XmlNodeList&lt;br /&gt;
                          
              Dim root As XmlElement =   doc.DocumentElement&lt;br /&gt;
                          
              '--默认的聊天语句--&lt;br /&gt;
                          
              nodeList =   root.SelectNodes(&amp;quot;/chat/default/content&amp;quot;)&lt;br /&gt;
                          
              Dim node As   XmlNode&lt;br /&gt;
                          
              For Each node In nodeList&lt;br /&gt;
                                
              chatList.Add(node.InnerText)&lt;br /&gt;
                          
              Next&lt;br /&gt;
                            
              '回答指定关键词的语句序列--&lt;br /&gt;
                          
              nodeList =   root.SelectNodes(&amp;quot;/chat/answer/content&amp;quot;)&lt;br /&gt;
                          
              For Each node In   nodeList&lt;br /&gt;
                              
              answerList.Add(node.Attributes(&amp;quot;key&amp;quot;).Value,   node.InnerText)&lt;br /&gt;
                          
              Next&lt;br /&gt;
                      
              Catch ex As   Exception&lt;br /&gt;
                          
              MsgBox(ex.Message)&lt;br /&gt;
                      
              End Try&lt;br /&gt;
                  
              End   Sub&lt;/div&gt;
            &lt;div&gt;&lt;br /&gt;
                  
              Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As   System.EventArgs) Handles Button1.Click&lt;br /&gt;
                      
              'RichTextBox1.SelectionBullet   = True&lt;br /&gt;
                      
              Dim Content$ = TextBox1.Text.Trim&lt;br /&gt;
                      
              If (Content = &amp;quot;&amp;quot;)   Then&lt;br /&gt;
                          
              RichTextBox1.AppendText(&amp;quot;请不要欺骗我的感情,谢谢!&amp;quot; +   ControlChars.Lf)&lt;br /&gt;
                          
              Exit Sub&lt;br /&gt;
                      
              End If&lt;br /&gt;
                      
              If   (Content.IndexOf(&amp;quot;:&amp;quot;) &amp;lt;&amp;gt; -1) Then&lt;br /&gt;
                          
              If learnNewWord(Content)   Then&lt;br /&gt;
                              
              RichTextBox1.AppendText(&amp;quot;我又学会了新的东西,谢谢!&amp;quot; +   ControlChars.Lf)&lt;br /&gt;
                          
              End If&lt;br /&gt;
                          
              Exit Sub&lt;br /&gt;
                      
              End   If&lt;br /&gt;
                      
              RichTextBox1.AppendText(Content + ControlChars.Lf)&lt;br /&gt;
                      
              Dim   aStr$ = getSimilarContent(Content)&lt;br /&gt;
                      
              If (aStr = Nothing)   Then&lt;br /&gt;
                          
              Dim i% = random.Next(1, chatList.Count)&lt;br /&gt;
                          
              aStr   = chatList.Item(i)&lt;br /&gt;
                      
              End If&lt;br /&gt;
                        
              RichTextBox1.AppendText(aStr.Trim + ControlChars.Lf)&lt;br /&gt;
                        
              RichTextBox1.Refresh()&lt;br /&gt;
                  
              End Sub&lt;br /&gt;
                  
              '得到相似的字符串&lt;br /&gt;
                  
              Function   getSimilarContent(ByVal content As String) As String&lt;br /&gt;
                      
              Dim keys As   System.Collections.ICollection = answerList.Keys&lt;br /&gt;
                      
              Dim enumR As   System.Collections.IEnumerator = keys.GetEnumerator&lt;br /&gt;
                      
              While   (enumR.MoveNext)&lt;br /&gt;
                          
              Dim str$ = enumR.Current&lt;br /&gt;
                          
              If   content.Equals(str) Then&lt;br /&gt;
                              
              Return   answerList(str)&lt;br /&gt;
                          
              End If&lt;br /&gt;
                      
              End While&lt;br /&gt;
                        
              enumR.Reset()&lt;br /&gt;
                      
              While (enumR.MoveNext)&lt;br /&gt;
                          
              Dim str$ =   enumR.Current&lt;br /&gt;
                          
              If (content.IndexOf(str) &amp;lt;&amp;gt; -1) Or   (str.IndexOf(content) &amp;lt;&amp;gt; -1) Then&lt;br /&gt;
                              
              Return   answerList(str)&lt;br /&gt;
                          
              End If&lt;br /&gt;
                      
              End While&lt;br /&gt;
                      
              Return   Nothing&lt;br /&gt;
                  
              End Function&lt;/div&gt;
            &lt;div&gt;    '添加新的语句&lt;br /&gt;
                  
              Function learnNewWord(ByVal content As String) As   Boolean&lt;br /&gt;
                      
              Try&lt;br /&gt;
                          
              Dim doc As XmlDocument = New   XmlDocument&lt;br /&gt;
                          
              Dim i% = content.IndexOf(&amp;quot;:&amp;quot;)&lt;br /&gt;
                          
              Dim   str1$ = content.Substring(0, i)&lt;br /&gt;
                          
              Dim str2$ = content.Substring(i +   1)&lt;br /&gt;
                          
              doc.Load(xmlFile)&lt;br /&gt;
                          
              Dim elem As XmlElement =   doc.CreateElement(&amp;quot;content&amp;quot;)&lt;br /&gt;
                          
              Dim attr As XmlAttribute =   doc.CreateAttribute(&amp;quot;key&amp;quot;)&lt;br /&gt;
                          
              attr.Value = str1&lt;br /&gt;
                            
              elem.InnerText = str2&lt;br /&gt;
                          
              elem.Attributes.Append(attr)&lt;br /&gt;
                            
              '添加新的语句--&lt;br /&gt;
                          
              Dim root As XmlElement =   doc.DocumentElement&lt;br /&gt;
                          
              Dim xmlNode As XmlNode =   root.SelectSingleNode(&amp;quot;/chat/answer&amp;quot;)&lt;br /&gt;
                            
              xmlNode.AppendChild(elem)&lt;br /&gt;
                          
              answerList.Add(str1,   str2)&lt;br /&gt;
                          
              doc.Save(xmlFile)&lt;br /&gt;
                          
              Return True&lt;br /&gt;
                        
              Catch ex As Exception&lt;br /&gt;
                          
              MsgBox(ex.Message)&lt;br /&gt;
                          
              Return   False&lt;br /&gt;
                      
              End Try&lt;br /&gt;
                  
              End Function&lt;/div&gt;
            &lt;div&gt;    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As   System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress&lt;br /&gt;
                      
              If   e.KeyChar.Equals(ControlChars.Cr) Then&lt;br /&gt;
                          
              Button1_Click(Nothing,   Nothing)&lt;br /&gt;
                      
              End If&lt;br /&gt;
                  
              End Sub&lt;br /&gt;
              End Class&lt;/div&gt;
            &lt;div&gt; &lt;/div&gt;
            &lt;div&gt;来自：Cral的BLOG &lt;a href="http://blog.sina.com.cn/u/55fd94d3010000s1"&gt;http://blog.sina.com.cn/u/55fd94d3010000s1&lt;/a&gt;&lt;br /&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;</description>
    </item>
    <item>
      <title>几个免费的中文分词模块</title>
      <link>http://www.netle.net/docs/4.htm</link>
      <description>几个月前做毕业论文的时候需要用到中文分词技术，现在总结一下我所找到的资料。

一、什么是中文分词

众所周知，英文是以词为单位的，词和词之间是靠空格隔开，而中文是以字为单位，句子中所有的字连起来才能描述一个意思。例如，英文句子“I am a student”，用中文则为：“我是一个学生”。计算机可以很简单通过空格知道“student”是一个单词，但是不能很容易明白「学」、「生」两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词，就是中文分词，有些人也称为切词。“我是一个学生”，分词的结果是：“我 是 一个 学生”。

中文分词是其他中文信息处理的基础，搜索引擎只是中文分词的一个应用。其他的比如机器翻译（MT）、语音合成、自动分类、自动摘要、自动校对等等，都需要用到分词。

目前研究中文分词的大多是科研院校，清华、北大、中科院、北京语言学院、东北大学、IBM研究院、微软中国研究院等都有自己的研究队伍，而真正专业研究中文分词的商业公司除了海量科技以外，几乎没有了。

Google的中文分词技术采用的是美国一家名叫 Basis Technology（http://www.basistech.com）的公司提供的中文分词技术，百度使用的是自己公司开发的分词技术，中搜使用的是国内海量科技（http://www.hylanda.com）提供的分词技术。业界评论海量科技的分词技术目前被认为是国内最好的中文分词技术，其分词准确度超过99%，由此也使得中搜在搜索结果中搜索结果的错误率很低。
（以上内容摘录自附录1）

</description>
    </item>
  </channel>
</rss>