一、简介 
   Nutch是一个开源的Web搜索引擎。  
       主要分为两个部分:爬虫crawler和查询searcher,两者之间的接口是索引。  
  
二、需要的软件
  -  
JDK1.6 
  -  
Tomcat6.0 
  -  
cygwin 
  -  
nutch1.0
 
 三、安装与配置
 1. JDK 
   JAVA_HOME= C:\Java\jdk1.6.0_14 
 CLASSPATH= C:\Java\jdk1.6.0_14\lib\dt.jar; C:\Java\jdk1.6.0_14\lib\tool.jar 
 PATH= %JAVA_HOME%\bin
  
   Java -version 
 2. Tomcat6.0
   http://tomcat.apache.org/download-60.cgi?Preferred=http%3A%2F%2Fapache.freelamp.com
                    出现tomcat主页则成功 
   <tomcat-users> 
   <role rolename="manager"/> 
   <user username="tomcat" password="tomcat" roles="manager"/> 
 </tomcat-users> 
  
 3. Cygwin 
   http://www.cygwin.cn/
  
                        http://www.cygwin.cn/pub/
  
   进入cygwin
 4. Nutch 
   http://www.apache.org/dyn/closer.cgi/lucene/nutch/ 
  -  
版本:nutch-1.0 
  -  
解压后到:C:\nutch-1.0 
 
   NUTCH_JAVA_HOME= C:\Java\jdk1.6.0_14
    PATH= %JAVA_HOME%\bin; % NUTCH_JAVA_HOME %\bin
  
    cd cygdriver/c/nutch-1.0 
 bin/nutch
 若出现若干命令,则说明Nutch配置成功 
 四、抓取网页数据 
 1. 指定爬虫规则
  - 修改Nutch-1.0/conf/crawl-urlfilter.txt 
 
  # accept hosts in MY.DOMAIN.NAME 
 +^http://dblp.lab/
  - 修改Nutch-1.0/conf/nutch-site.xml 
 
  <configuration> 
   <property> 
   <name>http.agent.name</name> 
   <value>my nutch agent</value> 
   </property> 
   <property> 
   <name>http.agent.version</name> 
   <value>1.0</value> 
   </property> 
 </configuration> 
  2. 开始爬取 
 3. 打开Cygwin 
 4. 在命令行输入
  cd /cygdrive/c/nutch-1.0
  
 5. 执行命令
  Bin/nutch crawl url.txt -dir crawled -depth 3 - threads 4 >&crawl.log 
      其中:dir是指定爬取内容所存放的目录,depth表示以要爬取网站顶级网址为起点的爬行深度,threads指定并发的线程数 
 6. 爬取中......(采集网页并建立索引) 
 7. 结束后在Nutch目录下产生爬取内容的文件夹crawled和日志文件夹logs 
 五、部署Web前端 
  1. 将nutch-1.0.war拷贝到webapps目录下 
 2. 通过浏览器访问如下网址,war包会自解压
  http://localhost:8080/nutch-1.0/
 3. 修改nutch的web配置 
        更改c:\tomcat6\webapps\nutch-1.0\WEB-INF\classes\nutch-site.xml ,将内容更改为索引生成的目录 
  <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?> 
 <!-- Put site-specific property overrides in this file. --> 
 <nutch-conf> 
 <property> 
   <name>searcher.dir</name> 
   <value>C:\nutch-1.0\crawled</value> 
 </property> 
 </nutch-conf> 
  
 六、解决中文乱码问题 
          修改文件C:\tomcat6\conf\server.xml 
  <Connector port="8080" maxThreads="150" minSpareThreads="25" 
 maxSpareThreads="75" enableLookups="false" redirectPort="8443" 
 acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" 
 URIEncoding="UTF-8" useBodyEncodingForURI="true" protocol="HTTP/1.1" /> 
   
 七、搭建完成 
 1. 启动Tomcat 
 2. 通过浏览器访问
  http://localhost:8080/nutch-1.0/
  
 (by 王海明)
			
			
		 
	
		
			
			
			输入法是基于词库的,词库中除了词条信息意外还有词频(也是最重要的了),词频表达用户使用词条概率,所以以概率解决问题较多。不管是包含多少种词库,词频信息必不可少,尽管有时还要对词频进行加权处理,如用户词库的词频肯定不会像系统词库的词频那么高,将二者进行排序时不能直接利用现有词频,要加权处理。尤其在智能组词那块,要形成短语,短句,就要找到频率最大的组句路径,会有计算公式。  
将用户需求进行分解:尽量覆盖用户的词汇当然是好,但是随之会产生问题,词库的臃肿化和计算的代价加大,就要剔除掉不必要的词条信息了,可我们怎么知道哪些才是用户需要的呢,通过获取用户输入环境找到符合用户需求的最小词汇,才是王道。这样词库构成基本分为系统共有词库+辅助词库,布局合理,其中后者是动态加载和更新的,很智能化。  
个性化:提高用户体验离不开个性化,适合大家的有可能适合自己,适合自己的不一定适合大家,个体之间存在差异,捕捉用户的使用习惯,找到个性部分很重要,用户词库,个性词等技术基本解决部分问题。引用原文的话:“记录用户输入的字词,学习某个用户适用的词汇;通过一段时间地不断学习,将词库逐渐收敛到某个用户输入的最佳状态,从而形成用户词库。通过动态调频,使其逐渐适应该用户,当用户是唯一时,很好地提升效率”,很到位。  
策略问题:如搜狗输入法有很多用户,利用用户的信息,反过来又回馈给用户,这样反复过程,最终要达到一个收敛平衡的状态。  
资源的重要性:搜狗宝贵的东西是语料库,各种想法实施的先决条件。  
详细的PPT在:http://d.onto.ac.cn/wipt/sogou.zip(教育网服务器)  
(by 韩艳景)