开发者社区> 问答> 正文

IK Analyzer 扩展配置 怎么用 - 分词报错

本来我要添加一些新的词汇进分词字典但是我怎么搞也搞不出来

工程结构如下

ext_stopword.dic 如下

我
也
了
仍
从
以
使
则
却
又
及
对
就
并
很
或
把
是
的
着
给
而
被
让
在
还
比
等
当
与
于
但
帅
丝

mydict.dic 如下

高富帅
屌丝

IKAnalyzer.cfg.xml 如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典--> 
	<entry key="ext_dict">/mydict.dic;</entry>
	 
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">/ext_stopword.dic</entry>
</properties>

程序代码(scala)

package com.nineteenlou
import org.wltea.analyzer.{Lexeme, IKSegmentation}
import java.util.{List=>JavaList, ArrayList => JavaArrayList}
import java.util.{Arrays=> JavaArrays}
import java.net.URL
import java.io.{Writer, FileWriter, File, StringReader}

/**
 * author: eric
 * Date: 12-5-18
 * Time: 下午12:41
 */

object WordAnalyzer {
  def doAnalyzeStatement(statement: String): Array[String] = {
    val reader: StringReader = new StringReader(statement)
    val wordsSegment: IKSegmentation = new IKSegmentation(reader)
    var oneWord: Lexeme = wordsSegment.next()
    var test = (oneWord != null);
    var result : JavaList[String] = new JavaArrayList[String]
    while(test){
      result.add(oneWord.getLexemeText)
      oneWord = wordsSegment.next()
      test = (oneWord != null)
    }
    result.toArray(new Array[String](result.size))
  }
  
  def main(args: Array[String]): Unit = {
	   val strs = doAnalyzeStatement("我不是高富帅是个屌丝")
	   strs.foreach(println)
  }

}

运行结果

不是
高
富
帅
个
屌
丝

 

 

展开
收起
montos 2020-05-30 13:56:09 344 0
1 条回答
写回答
取消 提交回答
  • "提问时如果没关联软件,作者就收不到你的提问:)######ext_stopword.dic 里有“帅”和“丝”,去掉试试看呗
    ######<div class=""ref"">

    引用来自“迷路的游侠”的答案

    ext_stopword.dic 里有“帅”和“丝”,去掉试试看呗
    ![image.png](https://ucc.alicdn.com/pic/developer-ecology/b673846b98224c01a8024f2d2cc6666a.png)
    没用的
    "
    2020-05-30 14:22:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载