zoukankan      html  css  js  c++  java
  • SCWS中文分词,向xdb词库添加新词

      SCWS是个不错的中文分词解决方案,词库也是hightman个人制作,总不免有些不尽如人意的地方。有些词语可能不会及时被收入词库中。
      幸好SCWS提供了词库XDB导出导入词库的工具(phptool_for_scws_xdb.zip),下载后解压至任意文件夹,我解压至“E:/www/tools/scws_xdb/”目录下。在命令行下进入PHP的安装目录,我的目录是”E:/xampp/php“。

        步骤1:执行命令行,将词库先导出来,生成一个文本文件(dict.txt):

       
      命令格式为:php dump_xdb_file.php  <要导出的.xdb文件>  [要存入的文本文件]
      几秒后在E:/scws目录下我就获得了导出的纯文本文件dict.txt。
      用文本编辑器打开dict.txt文件,我建议用EditPlus,用windows的记事薄的话不能正常显示换行符。dict.txt中文本格式为:

      # WORD    TF    IDF    ATTR
      当机立断    14.01    8.10    i

      #开头的行是注释。每行是一个词。每个词分为四部分,WORD列是词本身,TF和IDF列是词权重,ATTR列是词性。
      在这里要解释下TF和IDF的意思,它们合起来称作TF-IDF(term frequency– inverse document frequency),是一种用于资讯检索与资讯探勘的常用加权技术,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用分类。说起来很不好理解,其实也不需要理解,SCWS也提供了新词生词的TF/IDF计算器,可以自动获得词语的权重值。
      ATTR是词性,也就是标示词语是名字、动词、形容词等等词性的。详细的词性标示方法请看SCWS的说明:词典词性标注详解
      我要添加的词语是”芽菜“,是名词,用n标示。得到的IF、IDF值分别是13.82和7.48,那么在dict.txt结尾我追加了如下一行:
      芽菜    13.82    7.48    n
      

      步骤2:再执行如下命令,将修改好的dict.txt重新生成xdb文件。

      
      命令格式为:php make_xdb_file.php  <要生成的.xdb>  [导入的文本文件]
      
      生成xdb文件的过程需要比较长的时间,请耐心等待,如下图:
        
       
      就这么简单,补充了新词的词库制作完成!
      

  • 相关阅读:
    中值定理
    poj 3984 迷宫问题 bfs
    android 处理网络状态——无网,2g,3g,wifi,ethernet,other
    POJ 1273 || HDU 1532 Drainage Ditches (最大流模型)
    Android硬件加速
    Android的横竖屏切换
    滑雪_poj_1088(记忆化搜索).java
    Rank of Tetris(hdu1811拓扑排序+并查集)
    git在windows下clone、pull或者push内存溢出的解决办法
    数据库中DDL、DML、DCL和TCP概念
  • 原文地址:https://www.cnblogs.com/martinzhang/p/3209742.html
Copyright © 2011-2022 走看看