Nutch0.9分词研究

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

前言:msn空间丢失以及csdn空间丢失,导致很多以前写的文档都不见了~~幸好搜索到了,贴回来留念~~2007年的记忆:)

 

    首先,我要申明,这篇文档提供的只是思路,不是解决方案,而且不针对任何分词组件。如果想看解决方案的话,请查看我的另一篇文档,《nutch0.9中使用JE分词》。

在分词的过程中,我发现其实分词包含两部分,第一部分是关于抓取结果的分词,第二部分是关于查询关键字的分词,只有当这两部分的分词一致情况下,才能查到自己想要的结果。对于结果的分词,我们可以用luke来查看是否成功,但是关键字部分的分词,只能靠各位编写输出代码来确定是否正确了。

与分词相关的文件有如下三个:

1.NutchDocumentAnalyzer.java:修改这个文件可以达到对抓取结果进行分词。我们所要做的只是需要使用自己的分词方法替换他原本的分词方法,即在返回的时候返回<my分词.tokenStream(fieldName, reader)> (该文件在:nutch\src\java\org\apache\nutch\analysis下)

2.NutchAnalysis.java:修改这个文件可以达到查询关键字的分词。通过研究发现,该文件中的查询,最终都归结到parse方法中处理,也就是说,我们更改parse方法,即能达到分词效果。 (该文件在:nutch\src\java\org\apache\nutch\analysis下)

3.Query.java:这个文件是不用修改的,之所以把它列出来是因为NutchAnalysis.java parse方法根据查询不同关键字调用Query文件中的不同add**方法,然后再由NutchAnalysis的parse方法中return出去。

关于结果分词部分实现简单,在此就不细说了。对于关键字的分词,要求就比较多了,因为我们必须保证我们修改parse能够支持nutch原本查询的一些功能,比如:

梦幻西游      有梦幻或者西游都可以

"梦幻西游"    有全部的梦幻西游四个字并且顺序一致

-"梦幻西游"   页面没有梦幻西游完整顺序四个字,原系统没有此功能,需自己实现

-梦幻西游     页面没有梦幻但是有西游两个字

梦幻-"西游"   在有梦幻的页面查询没有西游的结果

其它多重组合

为了了解nutch原本的查询机制,我做了如下测试,在没有分词的nutch中,给NutchAnalysis.java每一个方法中添加一个print语句,输出的为该方法的编号,编号从1-52,即总共52个方法。另外parse方法开头和结尾特意println出调用parse开始/调用parse结束。此后又给Query.java的8个add方法中依次加了print语句输出方法编号,编译运行,结果如下:

梦幻

4/4/41/1/6/************* parse开始 ***************

12/17/20/46/36/39/46/46/46/46/46/29/46/46/52/48/

15/18/46/52/8/9/45/16/26/24/19/46/46/35/39/46/46/46/46/46/52/12/17/20/46/36/39/46/46/46/46/46/29/46/46/52/2//query6//query2/48/

15/18/46/52/8/9/45/16/26/24/19/46/46/35/39/46/46/46/46/46/52/12/17/20/46/36/39/46/46/46/46/46/29/46/46/52/2//query6//query2/48/

************* parse结束 ***************

注:由上可见,正常查询时候调用了query6/query2方法,因为nutch原版为一元分词,因此查询了两次。

 

"梦幻"

4/41/1/6/************* parse开始 ***************

12/17/20/46/36/39/46/46/46/46/46/29/46/46/52/48/15/18/46/52/7/45/48/

9/45/48/9/45/48/9/45/48/9/45/48/

45/12/17/20/46/36/39/46/46/46/46/46/29/46/46/52//query6/48/

************* parse结束 ***************

注:由上可见,梦幻作为一个整体提交,调用query6。

 

-"梦幻"

4/41/1/6/************* parse开始 ***************

12/17/20/46/36/39/46/46/46/46/46/29/46/46/28/27/32/46/22/19/46/46/35/39/46/46/46/46/46/46/52/48/45/15/18/46/52/48/7/45/48/

9/45/48/9/45/48/9/45/48/9/45/48/

45/12/17/20/46/36/39/46/46/46/46/46/29/46/46/52//query8/48/

************* parse结束 ***************

注:由上可见,梦幻作为一个整体提交,但是调用了query8。

 

鉴于梦幻和"梦幻"都调用了query6方法,因此察看该方法为:

  public void addRequiredPhrase(String[] terms, String field) {

    if (terms.length == 0) {                      // ignore empty phrase

    } else if (terms.length == 1) {

      addRequiredTerm(terms[0], field);           // optimize to term query

    } else {

      clauses.add(new Clause(new Phrase(terms), field, true, false, this.conf));

    }

  }

如上,也就是说,terms长度为1,才有可能调用addRequiredTerm(terms[0], field),而这个方法即我们所说的query2。由此证明,梦幻查询的时候,是一个词一个词直接传给query2的,而"梦幻"是多个词合成数组传进query6的,至于-"梦幻"则合成数组传给query8。另外,-梦幻则是一个一个词调用,梦调用query8,幻调用query2。

综上所述,我所推出的解决方式为:先将用户输入的关键字进行拆分,遇到正常查询的就直接分词调用query2,碰到有"的看前面又没有-号,没有就分词传数组给query6,有就分词传数组给query8,碰到有-后没有",有就分词传数组给query8,没有分词掉用query8。另外还有些没有想到的组合查询,有待各位编写代码时再作考虑了。

[Nutch]指定LUKE的分词器 在上一篇博文我们有介绍给Solr配置中文分词器mmseg4j,那么我们在LUKE工具中如何配置对应的中文分词器进行查看呢?本篇博文将详细进行解释。1. 下载中文分词器由于我们使用的luke是4.0版本的,只能使用mmseg4j的1.9.1版本,因为1.8.5的mmseg4j版本与4.0版本的luke有冲突,请点击下载1.9.1版本的mmseg4j-1.9.1.2. luke设置mmseg4j2.1 阅读详情

相关推荐

【BAT32G113-仿真器及脱机烧录器教程-A3-2024/9/19】

提示:此壁纸收集于互联网,如有侵权,请联系作者!今日下班,闲来无事,就与生活中在乎的人闲日常,互相彼此增进一些友谊或爱意情愫!在座的朋友看到这里,有时间,抽抽空,多多联系一下,身边重要的人哟!四种指示灯和一个按钮:MODE->代表红色POWER->代表黄色ACTIVE->代表蓝色STATUS->代表XX(不记得了)黑色按钮:按键上电,会进入升级模式,这里我们一般默认不需要改变!仿真工具-ICE8-PRO介绍隶属于产品分支里。烧写工具-CMS-WRITER8 LITE介绍点击。

星新计划的博客 8270

nutch0.9中使用je分词

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

AngelRobot的专栏 536

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 768

为nutch 添加中文分词插件

1.nutch中文分词Nutch对中文查询时默认采用的分词器为NutchAnalyzer,对中文默认采用单字切分.这种效果不是很理想,我们可以自定义切词器,以实现对中文支持.可以采用的两种方式添加对中文的支持.1.       直接修改nutch的系统代码,对默认的分词器代码进行修改使其使用自定义中文分词程序.2.       采用插件的方式,不修改系统代码的基础上,编写中文分

hadoopstudy的专栏 6113

VSCode玩转Arduino:手把手解决‘未定义Serial’和头文件找不到的坑

本文详细介绍了在VSCode中配置Arduino开发环境时遇到的‘未定义Serial’和头文件找不到问题的解决方案。通过修改c_cpp_properties.json文件、调整IntelliSense引擎设置以及添加正确的库路径,开发者可以高效解决这些常见错误,提升开发体验。文章还提供了针对不同开发板和平台的高级配置技巧,确保配置的长期有效性。

weixin_42620202的博客 359

Mac上安装Label Studio

以上步骤详细说明了如何在Mac上通过Anaconda安装Label Studio。记得根据你的具体需求选择是否创建新的环境,并使用conda或pip进行安装。安装完成后,务必验证Label Studio是否成功运行。

g2526的博客 1958

Nutch1.2 添加IKAnalyzer中文分词

原版nutch中对中文的处理是按字划分,而不是按词划分,我们可以为其添加一些中文分词插件,例如IKAnalyzer。参看了网上很多教程,最后也没能成功,最后综合了几个教程的内容,最终成功。 首先作以下几点说明,以方便理解: (1)目前,Nutch中文分词方式大致有两种方式: 一是修改源代码。这种方式是直接对Nutch分词处理类进行修改,调用已写好的一些分词组件进行分词。 二是编写分词插件。

xiaoyu714543065的专栏 700

从Excel到Power Pivot:构建你的第一个商业智能分析模型

本文详细介绍了如何从Excel升级到Power Pivot,构建你的第一个商业智能分析模型。通过激活Power Pivot功能、导入数据、建立表关系、创建智能度量值以及打造交互式仪表盘,帮助用户高效处理百万行级别的数据,实现数据自动关联和动态分析,大幅提升商业决策效率。

weixin_30629653的博客 256

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

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

梦秋雨 158

【虚幻引擎UE】UE5 可编辑动态样条线轨迹及AI跟随路径移动(含工程源码)

【虚幻引擎UE】可编辑动态样条线轨迹及AI跟随路径移动

灵境引路人 6227

SPICE仿真软件:Ngspice_(2).安装与配置

在Netlist文件中直接定义模型。V1 1 0 5R1 2 0 1k* Analysis库文件中可以包含多种电路元件模型和参数。

kkchenjj的博客 1585

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

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

成长~点滴~~ 270

android 蓝牙通讯demo

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

nutch-0.9(2)加入ICTCLAS 支持中文分词

a. 安装 svn , 从 apache 中下载这最新版本,(http://svn.apache.org/repos/asf/lucene/nutch/branches/branch-0.9/ )这样可以用ant工具进行编译,直接下载的包文件好不能用antb. 安装 ant. http://ant.apache.org/ 下载最新编译工具c. 安装 javacc  https://javacc.d

3206

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

nutch中文分词,改源码

<br />安装了nutch,但是默认的中文分词只能按照单个汉子分,使用起来十分不方便,于是到处查找资料,终于找到了几种中文分词插件,如ictcals,je,paoding,CJK等。<br />由于je分词java支持较好,且可以自定义字典单词,所以最后选用je分词最为nutch中文分词工具,主要步骤如下:<br />(1)下载je分词包放到nutch的lib文件夹下<br />(2) 修改src/java/org/apache/nutch/analysis中的 NutchAnalysis.jj ,将<

zhblue的专栏 1109

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

nutch安装及配置

1 Cygwin   Cygwin是一个运行于Windows下的免费的UNIX的子系统,使用一个Dll(动态链接库)来实现。(windows下的一个模拟UNIX的系统)安装:http://cppforever.spaces.live.com/Blog/cns!9DB38506DFDBED76!998.entry (在线安装)http://119.147.41.16/down?cid=A

samttsch的专栏 1765

Nutch中文分词总结

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

a280606790的专栏 335

Nutch-0.9加入ICTCLAS 支持中文分词

a. 安装 svn , 从 apache 中下载这最新版本,(http://svn.apache.org/repos/asf/lucene/nutch/branches/branch-0.9/ )这样可以用ant工具进行编译,直接下载的包文件好不能用antb. 安装 ant. http://ant.apache.org/ 下载最新编译工具c. 安装 javacc  https://javacc.d

947

Nutch环境搭建+Solr的使用

想学习java语言下的搜索引擎,那就必须从Apa

以梦为马——书到今生读已迟 920

nutch的安装以及中文分词器的配置 全部 已经成功了 希望大家找到这个 网上很多不全面...

1、解压到cygwin/home/user/nutch下,在里面建立一个urls文件夹,里面新建一个url.txt,里面写着你开始爬取的源网页地址,比如http://www.163.com/注意最后的斜杠要加上 2、修改nutch\conf\crawl-urlfilter.txt文件,把...

chuoyijie4596的博客 172

nutch-1.0中文分词

如何跟换nutch1.0中文分词,我在网上基本把所有的办法都是试了一遍但是没有一个是可行的,真是怀疑这些人是纯转载别人的文章还是自己确实有试过, 这里把步骤详细给大家说一下下边是别人的文章,但是其中跟真实的情况有出入,我这里有所修改 前提nutch-1.0配置正常能正常的爬取   找到 src/java/org/apache/nutch/analysis/NutchAnalysi

zha_zi的专栏 568

nutch-JE分词

先下载Nutch 1.0的源文件: co http://svn.apache.org/repos/asf/lucene/nutch/tags/release-1.0 ./nutch-1.0 更改查询语法解析部分: 改变tokenize的方式(原来为中文单字识别) modify “src/java/org/apache/nutch/analysis/NutchAnalysis.jj” ...

深未来技术 135

Nutch+Solr学习笔记

最近学习搜索引擎,以下为整理学习笔记:

aixiaoxue520的专栏 1358

《Nutch0.9入门使用指南》——配置与发布篇

前言:msn空间丢失以及csdn空间丢失,导致很多以前写的文档都不见了~~幸好搜索到了,贴回来留念~~2007年的记忆:)   part1:简单配置与发布 注:本文为个人学习后之总结,如有错误和不足,还望各位高手提醒补充,谢谢。QQ:41981172 经过那么多天的学习,个人认为开发搜索的主要流程如下:1.信息抓取 2.分词 3.索引 4分布式 只是个人基于nutch的感觉,不足的地

AngelRobot的专栏 778
上一篇: nutch0.9中使用je分词
下一篇: Eclipse配置相关
AngelRobot
博客等级 码龄15年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值