zoukankan      html  css  js  c++  java
  • 关于scws分词的一些记录

    测试环境:windows 2003 + php5.3.5 + apache2.2 + scws 1.1.9 

    自定义词库,words.txt 如下:

    腾讯    1.0    1.0    @
    C++    1.0    1.0    !
    中国人    1.0    1.0    !
    就是    1.0    1.0    !  

    1.每行由4个字段组成,依次为“词语"(由中文字或3个以下的字母合成), "TF", "IDF", "词性", 字段之间用空格或制表符分开,数量不限 (注意,发现如果字段时间用空格隔开,然后用scws官方的php程序将txt词库转换xdb后,词库无效,但是txt词库有效,所以为了兼容性,字段之间最好仅用一个制表符分隔,且注意txt文件的编码要与程序要使用的编码一致)

    2.词性设为“!“,则表示该词设为无效,即使在其它核心库中存在该词也视为无效 
     

    使用自定义词库,需要注意加载词库代码的位置

    $txt = '我就是一个中国人,我是会C++语言,我有很多T恤衣服'; 
    $sh=scws_open();
    //注意,加载词库的代码放在此处无效,但是按照官方的例子应该是放在这里
    //scws_add_dict($sh, 'D:\Apache3W\words.txt', SCWS_XDICT_TXT);
    scws_send_text($sh$txt);
    //加载词库的代码必须放在scws_send_text函之后才有效
    scws_add_dict($sh, 'D:\Apache3W\words.txt', SCWS_XDICT_TXT); 
    while ($words = scws_get_result($sh)) {
        foreach ($words as $word)
        {
            var_dump($word);
        }
    }
    scws_close($sh);

    如果非要将 scws_add_dict 放到 scws_send_text 前面 还可以这样写:

    $txt = '我就是一个中国人,我是会C++语言,我有很多T恤衣服';
    $sh=scws_open();
    //scws_set_dict也可以改为scws_add_dict 
    scws_set_dict($sh, 'D:\Program Files\scws\etc\dict.utf8.xdb', SCWS_XDICT_XDB);
    scws_add_dict($sh, 'D:\Apache3W\words.txt', SCWS_XDICT_TXT);
    scws_send_text($sh$txt);
    while ($words = scws_get_result($sh)) {
        foreach ($words as $word)
        {
            var_dump($word);
        }
    }
    scws_close($sh);  


  • 相关阅读:
    C#实现任意源组播与特定源组播
    张灵甫此人性格偏激,赌性重,喜欢冒险,做事不留后路,更适合担任中下层军官(要自己掌控着自己的命运)
    Delphi 中 断言 Assert 用法
    桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
    Asp.net vnext的IIS部署
    Asp.net vNext 学习3
    EasyUI的后台界面
    C#框架
    前端分离规范
    AngularJS html5Mode与ASP.NET MVC路由
  • 原文地址:https://www.cnblogs.com/mxw09/p/2406171.html
Copyright © 2011-2022 走看看