php-mmseg

中文分词引擎LibMMSeg的php扩展

  • Owner: rainx/php-mmseg
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

php-mmseg

简介

中文分词引擎LibMMSeg的php扩展

依赖

coreseek官网已经关闭了,所以已经无法从官方文档查询到软件包的细节, 如果需要查询官网信息,可以参考 archive.org 上的备份

https://web.archive.org/web/20161122124307/http://www.coreseek.cn:80/products-install/faq/

  1. php5.4 以上版本 (其他版本目前还没有测试)
  2. LibMMSeg 3.2.14版本 http://www.coreseek.cn/opensource/mmseg/
    关于mmseg的安装,参考 <del>http://www.coreseek.cn/products/products-install/</del>

安装

目前在Linux和Mac下测试通过,Windows下还未编译过

  1. 首先安装LibMMSeg ( http://www.coreseek.cn/uploads/csft/3.2/mmseg-3.2.14.tar.gz )
    我将libMMeg保存一份到我们的git仓库的dependencies 下

    cd dependencies/mmseg-3.2.14
    ./bootstrap
    ./configure --prefix=/opt/
    make 
    sudo make install
    
  2. 安装php-mmseg

    cd php-mmseg/mmseg
    phpize
    ./configure --with-mmseg=/opt
    make
    sudo make install
    
  3. 配置php-mmseg

    在php.ini中增加

    extension=mmseg.so
    mmseg.dict_dir=/opt/etc
    mmseg.autoreload=1
    

    注意, mmseg.dict_dir 配置的是mmseg配置文件和字典所在目录的地址, mmseg.autoreload 如果设置为1 则字典文件(特指uni.lib), 在更新之后,系统会自动重新载入配置文件和字典。

使用

  1. 全局字典模式

    该模式引入全文的字典文件,不需要每次调用分词代码之前调用字典,但是要求必须在配置文件中配置好字典的目录

    $ret = mmseg_segment("你好,世界");
    var_dump($ret);
    
  2. 在程序中引入字典

    $mmseg = mmseg_open("/opt/mmseg/etc");
    $ret = mmseg_segment($mmseg, "你好,世界");
    mmseg_close($mmseg);
    var_dump($ret);
    

    输出结果(使用mmseg默认的字典)

    array(3) {
      [0]=>
      string(6) "你好"
      [1]=>
      string(3) ","
      [2]=>
      string(6) "世界"
    }
    
  3. 生成字典文件

    类似命令行的如下命令,

    mmseg -u unigram.txt
    

    我们可以使用下面的语句生成词典文件,其中第一个参数为要输入的源文本格式的词典文件, 如unigram.txt , 第二个参数为输出的供分词使用的词典文件

    代码

    $isDone = mmseg_gendict(dirname(__FILE__) . "/" . "unigram.txt", dirname(__FILE__) . "/" . "unigram.txt.uni" );
    
    

    原文本格式的词典文件格式如下(参考LibMMSeg文档 : http://www.coreseek.cn/opensource/mmseg/

    河 187
    x:187
    造假者 1
    x:1
    台北队 1
    x:1
    湖边 1
    
  4. 生成特殊短语,同义词词典

    // 生成特殊短语词典
    mmseg_gensynonyms(dirname(__FILE__) . "/" . "synonyms.txt", dirname(__FILE__) . "/" . "synonyms.dat" )
    // 生成同义词词典
    mmseg_genthesaurus(dirname(__FILE__) . "/" . "thesaurus.txt", dirname(__FILE__) . "/" . "thesaurus.dat" )
    
    

Main metrics

Overview
Name With Ownerrainx/php-mmseg
Primary LanguageC++
Program languageC++ (Language Count: 5)
Platform
License:MIT License
所有者活动
Created At2014-04-18 08:14:12
Pushed At2017-10-18 02:59:41
Last Commit At2017-10-18 10:50:52
Release Count3
Last Release Namev0.3 (Posted on )
First Release Namev0.1 (Posted on )
用户参与
Stargazers Count71
Watchers Count12
Fork Count30
Commits Count46
Has Issues Enabled
Issues Count3
Issue Open Count1
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private