使用IKAnalyzer3.2.3分词器提取标题关键词

由于C2C的商城要实现一个简单的商品关键词搜索,建立关键词和商品的映射表需要先对商品标题自动提取关键词,

故用了lucene Analyzer\IKAnalyzer3.2.3做测试,对标题进行关键词切分.

感觉还是IKAnalyzer的分词比较贴切些。

直接附上jsp测试代码:

<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" buffer="2kb" session="false" autoFlush="true"%>
<%@page import="java.io.*,
        org.apache.lucene.analysis.*,
        org.apache.lucene.analysis.TokenStream,
        org.apache.lucene.analysis.tokenattributes.TermAttribute,
        org.wltea.analyzer.lucene.IKAnalyzer,
        org.apache.lucene.util.*
"%>
<%
IKAnalyzer ka = new  IKAnalyzer(true);
String s = "发布IKAnalyzer中文分词器 - Java、咖啡与茶";
Reader r = new StringReader(s);
TokenStream ts = (TokenStream)ka.tokenStream("title", r);
ts.addAttribute(TermAttribute.class);
        while (ts.incrementToken()) {
               TermAttribute ta =ts.getAttribute(TermAttribute.class);
               out.print(ta.term());
               out.print(" | ");
        } 

%>

 

IKAnalyzer.cfg.xml放在 WEB-INF/classes/下,自定义的字典文件也在这个目录下

测试效果如:


当然要用在商城里,我还需要扩展一个商品品牌相关的字典

在此十分感谢作者提供了这么好的一个插件.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装ikanalyzer 可以通过pip安装ikanalyzer: ``` pip install ikanalyzer ``` 2. 简单使用 ```python from ikanalyzer import Analyzer from ikanalyzer import ChineseAnalyzer # 使用Analyzer分词 text = "这是一段中文文本" analyzer = Analyzer() words = analyzer.analyze(text) print(words) # 使用ChineseAnalyzer分词 text = "这是一段中文文本" analyzer = ChineseAnalyzer() words = analyzer.analyze(text) print(words) ``` 输出: ``` ['这是', '一段', '中文', '文本'] ['这是', '一段', '中文', '文本'] ``` 可以看到,两种方式分词结果相同。 3. 更多用法 在使用ChineseAnalyzer时,可以设置分词模式: ```python analyzer = ChineseAnalyzer(mode=ikanalyzer.Mode.SEARCH) ``` 分词模式有以下几种: - Mode.SEARCH:搜索模式,适合用于对文本进行全文检索。 - Mode.MAX_WORD_LENGTH:最大词长模式,适合用于构建倒排索引或进行分词统计等需要更加精确的场景。 - Mode.NORMAL:普通模式,适合用于一般性的文本分析。 此外,还可以设置停用词和自定义词典: ```python analyzer = ChineseAnalyzer(stop_words=["的", "是", "一", "了"]) analyzer.set_dic("my_dict.txt") ``` 停用词是指在分词时需要过滤掉的一些无意义的词,如“的”、“是”、“一”、“了”等。自定义词典可以提高分词的准确性,比如可以将一些特定的词加入到词典中。 4. 示例 ```python from ikanalyzer import ChineseAnalyzer # 加载自定义词典 analyzer = ChineseAnalyzer() analyzer.set_dic("my_dict.txt") # 分词 text = "这是一段自然语言处理的示例。" words = analyzer.analyze(text) # 打印结果 print(words) ``` 输出: ``` ['自然语言处理', '示例'] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值