scws自定义词库

IKAnalyzer是同样缓慢能够之华语分词组件,其坐了词库,内置的词库在其jar包内内嵌,所以你免相会看出坐词库。
我们也堪被IKAnalyzer添加自定义词库,添加的法门求证如下:

生个违章词库的需,也堪开头要词提取,大家的摸的词库用的凡httpcws
张宴先生的,他的词库封装入了 不可知编译,scws辅助自定义词库 很好用。

率先要以档次遭到新盘一个词库配置文件,要放在资源文件之同目录,文件称吧稳定的IKAnalyzer.cfg.xml,在文书被补充加如下内容:

cd /Data/tgz/

<?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">cn/outofmemory/my.dic;cn/outofmemory/mine.dic;</entry> 
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">cn/outofmemory/stopword.dic</entry> 
</properties>

wgethttp://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2

注意少单entry节点中分别配备了增加词典,和壮大的stopwords,
多独词典中因而英文半角分号;分割。

tar xvjf scws-1.2.2.tar.bz2

然后是填补加起定义扩张词库,需要在对应的资源文件目录下,词库的格式是单排一个歌词,例如:

cd scws-1.2.2

马云
马化腾
内存溢出

./configure –prefix=/Data/apps/scws

下是同等段落测试分词的java代码:

make

package cn.outofmemory;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;

public class App {
    public static void main(String[] args) {
        String str = "马云和马化腾是两个牛人";

        IKAnalysis(str);
    }

    public static String IKAnalysis(String str) {
        StringBuffer sb = new StringBuffer();
        try {
            byte[] bt = str.getBytes();
            InputStream ip = new ByteArrayInputStream(bt);
            Reader read = new InputStreamReader(ip);
            IKSegmenter iks = new IKSegmenter(read, false);
            Lexeme t;
            while ((t = iks.next()) != null) {
                sb.append(t.getLexemeText() + " , ");
            }
            sb.delete(sb.length() - 1, sb.length());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(sb.toString());
        return sb.toString();
    }
}

make install

运作后可以看到IKAnalyzer的分词结果。

cd phpext/

ls

/Data/apps/php/bin/phpize

./configure –with-scws=/Data/apps/scws/
–with-php-config=/Data/apps/php/bin/php-config

make

make install

vi /Data/apps/php/etc/php.ini

添加

extension =scws.so

scws.default.charset = utf8

scws.default.fpath = /Data/apps/scws/etc

封存退出

killall php-fpm

/Data/apps/php/sbin/php-fpm

词库起名为lianchuang.txt

放到/Data/apps/scws/etc下

格式

麻痹性干眼    1.0    1.0    @

麻痹性脑膜炎    1.0    1.0    @

麻痹性肠梗阻    1.0    1.0    @

麻痹性臂丛神经炎    1.0    1.0    @

麻醉    1.0    1.0    @

麻风    1.0    1.0    @

用法

$content=$this->getRequest()->getQuery(‘content’,”);

$scws= scws_new();

$scws->set_charset(‘utf8’);

// 这里没调用 set_dict 和 set_rule 系统会自动试调用 ini
中指定路线下之词典和规则文件

$scws->send_text($content);

$scws->add_dict(ini_get(“scws.default.fpath”).”/lianchuang.txt”,SCWS_XDICT_TXT);

$scws->set_ignore(false);

//是否复式分割,如“中国丁”重返“中国+人+中国总人口”多只词。

$scws->set_multi(false);

//设定将亲笔自动为老二配分词法聚合

$scws->set_duality(true);

$result=$scws->get_words(‘@’);

if(is_array($result) &&count($result) >0) {

$words= [];

foreach($resultas$key=>$value) {

$words[] =$value[‘word’];

}

var_dump($words);

}

$scws->close();

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图