为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

Unity卡通渲染实战:原神PMX模型Blender转FBX全流程

卡通渲染是二次元游戏开发的核心技术之一,其本质在于对光照模型、顶点色控制与边缘光生成的精准建模。本文从基础概念切入,解析MMD PMX格式的数据结构原理,阐明顶点色(Vertex Color)与Toon Ramp贴图在风格化渲染中的技术价值;进而覆盖Blender到Unity的跨引擎资产流转关键路径,重点解决法线校准、骨骼命名适配、FBX导出参数配置等工业级断点问题;最终落地于Unity内置管线与URP双环境下的卡通Shader定制与Render Feature实现。内容聚焦原神风格角色资产重铸实践,涵盖P

weixin_38166557的博客 438

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

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

梦秋雨 158

React项目实战:用AntV G6打造可折叠组织架构图(附完整代码)

本文详细介绍了如何在React项目中使用AntV G6库构建一个功能完整的可折叠组织架构图。通过实战代码演示了从环境搭建、自定义节点、折叠状态管理到性能优化的全流程,重点解决了企业级应用中处理复杂树形数据、实现流畅交互等核心问题,并提供了可直接复用的组件代码。

weixin_29016315的博客 312

大麦网抢票软件工具开发系列(一)

前言《大麦网》都知道吧,就是那个被网友声称“大麦网你卖啥了?”票务平台。近期有听到朋友说《大麦网》的票很难抢,基本上都是说:“哎哟喂,被挤爆啦,请稍后重试!”,也不知道《大麦网》...

架构文摘 1万+

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

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

成长~点滴~~ 270

Windows 11 系统部署 OpenClaw 完整指南:从零到一的 AI 助手搭建

OpenClaw(昵称“小龙虾”)是一款开源 AI 代理工具,定位为“AI 指挥官”,能够接收指令、调用工具并自动化处理任务。它支持对接国内外多款大模型,所有数据本地存储,兼顾实用性与安全性。本文将详细介绍在 Windows 11 系统上部署 OpenClaw 的完整流程。OpenClaw 在 Windows 11 上的部署虽然有一定技术门槛,但按照本文的步骤操作,大多数用户都能顺利完成安装。环境准备是基础:确保 Node.js ≥22 版本,使用管理员权限操作安装方式灵活选择。

weixin_41484939的博客 801

Nutch0.9分词研究

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

AngelRobot的专栏 600

使用 Python 获取实时港股行情数据

在本教程中,你将学习如何通过 Infoway API 获取港股实时行情数据,具体以腾讯控股(0700.HK)和汇丰控股(0005.HK)为例,使用 Python 进行数据请求和解析。

kk_stoper的博客 1517

【学习记录】IIC驱动ICM42670+卡尔曼滤波+四元数姿态角解算

ICM42670陀螺仪可以使用iic驱动,单片机平台使用GD32f305VE。

liarsup的博客 8269

Nutch1.2 添加IKAnalyzer中文分词

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

654

C# 与蓝牙 BLE 设备通信:基于 Windows.Devices.Bluetooth 实现手环/传感器数据读取

本文介绍了如何利用C#的Windows.Devices.Bluetooth命名空间实现与蓝牙BLE设备的通信。首先概述了BLE技术特性及其在物联网中的应用场景,包括智能穿戴设备和传感器。随后讲解了BLE的GATT协议架构,解析了服务(Service)和特性(Characteristic)的概念。文章重点展示了通过C#实现设备扫描、连接、数据读取的完整代码示例,并详细说明了如何使用通知(Notifications)功能实现实时数据更新。最后提供了订阅心率测量特性变化的实现代码,为开发者提供了完整的BLE设备通

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1323

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

ABAP Development Tool for Visual Studio Code 里使用 MCP server

本文讨论了SAP ABAP开发环境中,除GitHub Copilot外,其他可作为MCP客户端接入ABAP开发工具(MCP server)的编码代理(coding agent)。GitHub Copilot是官方确认可用的工具,而其他代理如Claude Code、Cursor、Windsurf Cascade、Cline和Continue虽然理论上支持MCP协议,但要实际用于ABAP开发还需满足两个关键条件:兼容MCP协议,并能处理VS Code虚拟工作区文件系统。这些工具需要单独验证是否支持ABAP开发工

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 259

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Nutch 中文分词 庖丁分词组件

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

TJT999 2806

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Nutch 分词 中文分词 paoding 疱丁

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

mutou12456的专栏 2979

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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、付费专栏及课程。

余额充值