本来我要添加一些新的词汇进分词字典但是我怎么搞也搞不出来
工程结构如下
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) } }
运行结果
不是 高 富 帅 个 屌 丝
"提问时如果没关联软件,作者就收不到你的提问:)######ext_stopword.dic 里有“帅”和“丝”,去掉试试看呗
######<div class=""ref"">
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。