为nutch 添加中文分词插件

别再手动算正弦表了!分享一个我常用的SPWM数组生成工具和STM32移植技巧 在电力电子和电机控制领域,正弦脉宽调制(SPWM)技术是实现高质量交流输出的核心方法。本文将分享一套经过实战验证的高效工具链和工作流,帮助工程师快速生成不同参数的SPWM波形数据,并深度优化STM32平台的实现方案。在实际项目中,这套方法成功应用于多款工业变频器和UPS电源设计,相比传统手动计算方式,开发效率提升约70%,且波形质量更加稳定可靠。特别是在需要频繁调整输出频率的场景中,工具链的优势更为明显。市面上有多种SPWM表格生成工具,根据多年项目经验,我推荐使用。:保持ARR不变,动态处理波形数据。 阅读详情

1.nutch中文分词

Nutch对中文查询时默认采用的分词器为NutchAnalyzer,对中文默认采用单字切分.这种效果不是很理想,我们可以自定义切词器,以实现对中文支持.

可以采用的两种方式添加对中文的支持.

1.       直接修改nutch的系统代码,对默认的分词器代码进行修改

使其使用自定义中文分词程序.

2.       采用插件的方式,不修改系统代码的基础上,编写中文分词插件实现对中文

分词的支持。类似我们在nutch的系统中看到的关于法语和德语解析的插件

进行分词解析。

通过修改代码的方式实现对中文的支持,可以看到很多文章介绍.常见的方式类似

这里.

而在nutch的系统设计中,采用插件的方式,可以在不修改系统代码的基础上即可实现

多语言支持功能.我们只需要编写对应的插件部署在系统下即可.

2.实现中文分词插件步骤

   2.1 插件流程

       当我们对一个插件进行解析时,首先会根据文档内容获取对应的分词解析器.

       这里我们可能有疑问,根据文档内容如何获取对应的分词解析器.这里用到

       另一个插件languageidentifier 语言标示插件,可以通过这个插件获取当前文

       档所属的语言,在每个文档上会添加一个lang的属性.

       NutchAnalyzer analyzer = factory.get(doc.get("lang"));

       Factory 为AnalyzerFactory会根据不同的语言获取切词器而这里的lang属性则通过 

       Languageidentifier

       我们可能会产生另一个问题,Languageidentifier如何知道当前文档语言类别呢?

       在这里我们首先查看下

       src/plugin/languageidentifier 文件结构   

      

       我们可以看到有很多ngp为扩展名的文件,插件正是通过这些ngp文件来判断文档的语言类型对于中文的我生成的文件为zh.ngp这个文件名代表是解析中文文档使用的ngp关于对应的语言产生的文件信息。可以通过langmappings.properties中定义的信息,可以扩展更多国家的语言支持.ngp文件的生成,可以参看这里.有比较详细的介绍.

2.2    建立插件类 

我们在这里建立的插件类,很简单。调用的分词器直接用lucene2.0中的CJKAnalyer

具体代码如下.

  

package org.apache.nutch.analysis.zh;

 

// JDK imports


import java.io.Reader;

 

// Lucene imports


import org.apache.lucene.analysis.Analyzer;

import
 org.apache.lucene.analysis.TokenStream;

 

// Nutch imports


import org.apache.nutch.analysis.NutchAnalyzer;

 

 

/**

 * A simple Chinese Analyzer that wraps the Lucene one.

 * 
@author sy zhang

 
*/


public class CJKAnalyzer extends NutchAnalyzer {

    

    
private final static Analyzer ANALYZER =
           

            
new
 org.apache.lucene.analysis.cjk.CJKAnalyzer();

 

    

    
/** Creates a new instance of CJKAnalyzer */


    
public CJKAnalyzer() { }

 

 

    
public TokenStream tokenStream(String fieldName, Reader reader) {

        
return
 ANALYZER.tokenStream(fieldName, reader);

    }


    
/*

     * it's only for test

     
*/


    
public static void main(String[] args) throws Exception

  
{

      Analyzer analyzer 
= new
 CJKAnalyzer();

      String fieldName 
="test"
;

      String test
="这是一个简单测试this is a cjk test"
;

      
char[] testArray =
test.toCharArray();

      java.io.Reader r 
= new
 java.io.CharArrayReader(testArray);

    

      TokenStream t 
=
 analyzer.tokenStream(fieldName, r);      

      org.apache.lucene.analysis.Token token 
=null
;

      
try


      
{

      token 
=
 t.next();

      }


      
catch(Exception ex)

      
{

        

      }


      
while(token!=null)

      
{

         System.out.println(token.termText());

         
try


         
{

         token 
=
 t.next();

         }


         
catch(Exception ex)

         
{

            

         }


      }


     r.close();

      

      

  }


}


2.3    建立插件配置信息

我们需要建立一个插件信息xml文件默认为plugin.xml。在这里定义了插件名称,位置

调用中需要一些类信息等.具体信息如下:

 

< property >

  
< name > plugin.includes </ name >

  
< value > ...|analysis-(zh)|... </ value >

  ...
</ property >

 

2.4    插件使用

1.       我们通过在源码系统目录下的build.xml差生一个analysis-zh文件夹其中包含analysis-zh.jar和plugin.xml文件.在部署的时将此复制到plugin目录下即可。这样我们的插件系统开发基本完成.如下图.

     

2.       在使用过程中和其他插件方式类似

我们需要修改nutch-site.xml下的plugin.includes如下

可以在这里添加其他语言类插件.

3.       小结

关于此插件的实现是一个非常简单的中文插件实现的例子.基本上参看法语和德语解析的例子.写的代码也非常少,当然如果对中文分词很好的支持,我们需要定义算法更好一些的分词解析程序。基本的流程还是一样。

感觉nutch的插件系统设计还是比较灵活,我们不用关心系统内核实现,只需要实现我们需要的功能配置到系统中即可.

源文件下载

这个按现在nutch系统的目录结构编写,看能否提交到nutch的plugin中,还不知道怎么提交上去。知道的朋友帮介绍下步骤.先谢了.:)  

 

 

   

 

基于Nutch中文分词的研究与实现 作为舆情监测系统的一部分,本文的目标是基于Nutch,同时,结合目前最常用中文分词技术,根据不同的中文分词方法,实验并得出不同分词方法在性能以及使用环境上的优缺点,以此为舆情监测系统选择合适的中文分词方法,为系统下一步的实现打下基础。 立即下载

相关推荐

nutch中文分词

nutch应用,nutch中文分词,nutch中文乱码

nutch0.9中使用je分词

前言:msn空间丢失以及csdn空间丢失,导致很多以前写的文档都不见了~~幸好搜索到了,贴回来留念~~2007年的记忆:)   首先要感谢"苹果"、"冰人"、"悟空"等,他们给了我思路和代码等方面的帮助。 注:本文挡为最基本的分词方式,分词后原有高级搜索部分功能无效。         如果各位仍然需要高级搜索功能,请参见Nutch0.9分词研究中的思路加以修改。   将如下文件中

AngelRobot的专栏 536

Vivado FIR Complier_IP核使用方法

文章依靠该IP核对应手册PG149写的,因为笔者需求简单,没有深入挖掘功能,可以自行下载学习。

2302_80180551的博客 3990

在Nutch中使用庖丁解牛中文分词

一年多前曾经关注过一阵子nutch,那时候还是0.7,后来出了0.8版本,前面再看,已经是0.9。正好有点时间想把之前搁下来的校内搜索引擎的事情再拿起来,于是就下载来重新折腾了几天。现在终于“小有成就”,在校内跑起来了,现在来记录一下使用过程中遇到的一些问题,以及解决方法,或有用于同道。 1.加入中文分词 这是天朝人物做搜索要解决的第一件事情。我的办法也偷懒,改了一个类,重新构建一下就ok了。...

梦秋雨 158

Android BluetoothSocket

BluetoothSocket是Android中用于在蓝牙设备之间进行数据传输的一种Socket。它提供了一种类似于TCP/IP协议的数据传输方式,可以在两个设备之间建立一个虚拟的通信管道,使得两个设备之间可以进行数据的传输和接收。BluetoothSocket可以用于客户端和服务端之间的通信,通过BluetoothSocket可以实现数据的双向传输。

liuning1985622的博客 1477

Java开发者的福音:Aspose 25.10全系列(Cells/Words/PDF/Slides)最新版破解与集成保姆级教程

本文为Java开发者提供了Aspose 25.10全系列组件(Cells/Words/PDF/Slides)的最新版破解与集成保姆级教程。通过详细的Maven依赖配置、字节码修改技术绕过限制,以及Spring Boot项目中的实战集成指南,帮助开发者高效实现Office文档处理功能,提升开发效率。

weixin_30919429的博客 347

在tomcat中运行得nutch加入中文分词后的检索

nutch-0.9加入中文分词之后的索引有很多博客已经讲到过 我没有使用Cygwin模拟linux环境,而是在Tomcat中运行的nutch。这个项目工程文件是在我们的项目中的一个war包,而这个war包却是最开始的版本,因此我们要在特定的时候修改掉里面的一些文件。   但遇到一个问题是,加入分词之后放到tomcat里面发现搜索不好使了,用Luke打开索引文件可以看到中文分词的效果明显 可...

成长~点滴~~ 270

粒子群优化与蚁群算法求解多旅行商问题

它要求在给定一组城市和旅行商之间的距离矩阵的情况下,找到一条最优的路径方案,使得所有旅行商可以分别从起始城市出发,途径其他城市,并最终回到起始城市,同时总旅行距离达到最小。这两种算法都是基于群体智能的优化算法,在求解组合优化问题时具有较好的性能表现。假设有n个城市需要被m个旅行商访问,城市间的距离由距离矩阵D表示,其中D(i,j)表示第i个城市到第j个城市的距离。粒子群优化算法是一种基于群体智能的优化算法,其中的粒子代表了潜在的解,并通过模拟粒子在解空间中的移动来搜索最优解。一、多旅行商问题建模。

m0_47037246的博客 553

Nutch0.9分词研究

前言:msn空间丢失以及csdn空间丢失,导致很多以前写的文档都不见了~~幸好搜索到了,贴回来留念~~2007年的记忆:)       首先,我要申明,这篇文档提供的只是思路,不是解决方案,而且不针对任何分词组件。如果想看解决方案的话,请查看我的另一篇文档,《nutch0.9中使用JE分词》。 在分词的过程中,我发现其实分词包含两部分,第一部分是关于抓取结果的分词,第二部分是关于查询关键

AngelRobot的专栏 600

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1848

Xilinx平台SRIO介绍(五)示例工程Example Design介绍

理解IP的使用,少不了Example Design的学习。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

Nutch1.2 添加IKAnalyzer中文分词

原文地址:http://blog.csdn.net/jiutao_tang/article/details/6461884 原版nutch中对中文的处理是按字划分,而不是按词划分,我们可以为其添加一些中文分词插件,例如IKAnalyzer。参看了网上很多教程,最后也没能成功,最后综合了几个教程的内容,最终成功。 (1)目前,Nutch中文分词方式大致有两种方式: 一是修改源代码。这种方式是直

654

Python爬虫实战:高效爬取Vimeo高清视频

在当今数字化时代,视频内容已成为互联网的重要组成部分。Vimeo作为一个高质量的视频分享平台,拥有大量优质视频资源。然而,Vimeo并未提供直接下载视频的选项,因此,我们需要借助Python爬虫技术来获取这些高清视频。(HTTP Live Streaming)格式存储。Vimeo的视频通常不会直接暴露。Vimeo的视频通常以。

2201_76125261的博客 432

Nutch成功添加中文分词

原文地址:http://www.cnblogs.com/streamhope/archive/2011/07/28/2119345.html 在win7+nutch1.2上通过(亲身试验) IKAnalyzer版本最好为3.2.8,不要下载IKAnalyzer2012版本的 以下为摘录文章: 一、开发环境介绍(以我个人为例): 个人开发端:windows Server...

weixin_34097242的博客 97

手把手教你在ARM64架构下编译和部署Milvus:从环境搭建到Docker镜像制作全攻略

本文详细介绍了如何在ARM64架构下编译和部署Milvus,包括环境搭建、源码下载与编译、Docker镜像制作等关键步骤。通过本文的方法,您可以快速构建适用于ARM64设备的Milvus编译环境,并解决常见的编译错误。同时,还提供了基于Docker Compose的测试方法,帮助用户高效地完成向量数据库的部署与应用。这是一次深入探索开源AI工具的实用指南,为开发者在多种硬件架构上的创新应用提供了强有力的支持。

小盒子的博客 1268

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Nutch 中文分词 庖丁分词组件

1 中文分词介绍 目前,Nutch中文分词方式大致有两种方式: 一是修改源代码。这种方式是直接对Nutch分词处理类进行修改,调用已写好的一些分词组件进行分词。 二是编写分词插件。这种方式是按照Nutch定义的插件编写规则重新编写或者添加中文分词插件。 以上两种方式都是可取的。目前,由于开源社区的活跃,已经有很多种分词组件的出现,无论是修改源代码的方式还是编写分词插件的方式,都是依赖于这些分词组件的。下面列出了主要的一些分词组件: 1、CJKAnalyzer Lucene自带的一种中日韩分词器。

TJT999 2806

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Nutch 分词 中文分词 paoding 疱丁

Nutch中文分词总结2009年06月10日 星期三 22:381 中文分词介绍中文分词是在做检索类系统时需要重点考虑的一个因素。Nutch的本土化过程也需要更改对中文分词的支持。目前,Nutch中文分词方式大致有两种方式:一是修改源代码。这种方式是直接对Nutch分词处理类进行修改,调用已写好的一些分词组件进行分词。二是编写分词插件。这种方式是按照Nutch定义的插件

mutou12456的专栏 2979

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Nutch中如何实现中文分词功能

Nutch中如何实现中文分词功能 Nutch对中文查询时默认采用的分词器为NutchAnalyzer,对中文默认采用单字切分.这种效果不是很理想,我们可以自定义切词器,以实现对中文支持,注意网上对如何添加中文分词功能有很多介绍但不全也不完整,对Nutch添加中文分词一定要在检索端和查询端同时更改。 可以采用的两种方式添加对中文的支持. 1.直接修改nutch的系统代码,对默认的分词器代码进行

hello9050的专栏 2248

nutch中文分词(通过插件的方式)

1、需要的工具:IKAnalyzer jar包(将其命名为analysis-zh.jar)  javacc工具 ant 2、部署nutch工程到eclipse中。 3、定义自己的分词类,代码如下                         package com.gpower.nutch.plugin; import java.io.Reader; import org.apa...

fushengfei的专栏 212

Nutch中文分词总结

1 中文分词介绍 中文分词是在做检索类系统时需要重点考虑的一个因素。Nutch的本土化过程也需要更改对中文分词的支持。目前,Nutch中文分词方式大致有两种方式: 一是修改源代码。这种方式是直接对Nutch分词处理类进行修改,调用已写好的一些分词组件进行分词。 二是编写分词插件。这种方式是按照Nutch定义的插件编写规则重新编写或者添加中文分词插件。 以上两种方式都是可取的。目前,由于...

a280606790的专栏 335
上一篇: nutch结构
hadoopstudy
博客等级 码龄20年 4粉丝 5原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值