分词系统简介:PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。 由于PHPAnalysis是无组件的系统,因此速度会比有组件的稍慢,不过在大量分词中,由于边分词边完成词库载入,因此内容越多,反而会觉得速度越快,这是正常现象,PHPAnalysis的词库是用一种类似哈希(Hash)的数据结构进行存储的,因此对于比较短的字符串分词,只需要占极小的资源,比那种一次性载入所有词条的实际性要高得多,并且词库容量大小不会影响分词执行的速度。
      PHPAnalysis分词系统是基于字符串匹配的分词方法进行分词的,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与 一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配 和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与 标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
      还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向 最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169, 单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各 种其它的语言信息来进一步提高切分的准确率。另一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明 显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类 信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
     PHPAnalysis分词先对需要分词的词进行粗分,然后对粗分的短句子进行二次逆向最大匹配法(RMM)的方法进行分词,分词后对分词结果进行优化,然后才得到最终的分词结果。

PHPAnalysis类API文档

一、比较重要的成员变量

$resultType   = 1        生成的分词结果数据类型(1 为全部, 2为 词典词汇及单个中日韩简繁字符及英文, 3 为词典词汇及英文)

这个变量一般用 SetResultType( $rstype ) 这方法进行设置。

$notSplitLen  = 5        切分句子最短长度

$toLower      = false    把英文单词全部转小写

$differMax    = false    使用最大切分模式对二元词进行消岐

$unitWord     = true     尝试合并单字(即是新词识别)

$differFreq   = false    使用热门词优先模式进行消岐

二、主要成员函数列表

1、public function __construct($source_charset='utf-8', $target_charset='utf-8', $load_all=true, $source='')

函数说明:构造函数

参数列表:

$source_charset      源字符串编码

$target_charset      目录字符串编码

$load_all            是否完全加载词典(此参数已经作废)

$source              源字符串

如果输入输出都是utf-8,实际上可以不必使用任何参数进行初始化,而是通过 SetSource 方法设置要操作的文本

2、public function SetSource( $source, $source_charset='utf-8', $target_charset='utf-8' )

函数说明:设置源字符串

参数列表:

$source              源字符串

$source_charset      源字符串编码

$target_charset      目录字符串编码

返回值:bool

3、public function StartAnalysis($optimize=true)

函数说明:开始执行分词操作

参数列表:

$optimize            分词后是否尝试优化结果

返回值:void

一个基本的分词过程:

//

$pa = new PhpAnalysis();

$pa->SetSource('需要进行分词的字符串');

//设置分词属性

$pa->resultType = 2;

$pa->differMax  = true;

$pa->StartAnalysis();

//获取你想要的结果

$pa->GetFinallyIndex();

4、public function SetResultType( $rstype )

函数说明:设置返回结果的类型

实际是对成员变量$resultType的操作

参数 $rstype 值为:

1 为全部, 2为 词典词汇及单个中日韩简繁字符及英文, 3 为词典词汇及英文

返回值:void

5、public function GetFinallyKeywords( $num = 10 )

函数说明:获取出现频率最高的指定词条数(通常用于提取文档关键字)

参数列表:

$num = 10  返回词条个数

返回值:用","分隔的关键字列表

6、public function GetFinallyResult($spword=' ')

函数说明:获得最终分词结果

参数列表:

$spword    词条之间的分隔符

返回值:string

7、public function GetSimpleResult()

函数说明:获得粗分结果

返回值:array

8、public function GetSimpleResultAll()

函数说明:获得包含属性信息的粗分结果

属性(1中文词句、2 ANSI词汇(包括全角),3 ANSI标点符号(包括全角),4数字(包括全角),5 中文标点或无法识别字符)

返回值:array

9、public function GetFinallyIndex()

函数说明:获取hash索引数组

返回值:array('word'=>count,...) 按出现频率排序

10、public function MakeDict( $source_file, $target_file='' )

函数说明:把文本文件词库编译成词典

参数列表:

$source_file   源文本文件

$target_file   目标文件(如果不指定,则为当前词典)

返回值:void

11、public function ExportDict( $targetfile )

函数说明:导出当前词典全部词条为文本文件

参数列表:

$targetfile  目标文件

返回值:void

PhpanAlysis分词技术相关推荐

  1. 浅谈搜索引擎百度分词技术

    scottlinn为了让大家更好的理解如何去选择关键字词,特意做了一些分词测试试验,归纳了一些关于搜索引擎百度分词的经验向大家分享.希望可以帮助站长们更深层的理解搜索引擎分词技术,做好自己的网站,获得 ...

  2. 与自定义词典 分词_如何掌握分词技术,你需要学会这些

    导语 本周对自然语言处理的分词技术进行了学习.本文针对分词技术的进行了全视角的概览,目标是掌握什么是分词技术.为什么需要分词技术和如何使用分词技术.后续将分不同篇幅对其中内容进行深挖和讲解. 文章结构 ...

  3. 词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法

    词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法 Type真是太帅了 于 2018-12-31 13:20:07 发布 1930  收藏 1 分类专栏: 编程 版权 编程 专栏收录该内容 15 ...

  4. jieba分词错误_如何掌握分词技术,你需要学会这些

    1.导语: 本周对自然语言处理的分词技术进行了学习.本文针对分词技术的进行了全视角的概览,目标是掌握什么是分词技术.为什么需要分词技术和如何使用分词技术.后续将分不同篇幅对其中内容进行深挖和讲解.文章 ...

  5. Go语言 中文分词技术使用技巧(一)

    分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行分词的一种技术. 中文分词(Chinese Word Segmentation)指的是将一个汉字序列( ...

  6. 深入浅出不可思议的中文分词技术

    亲爱的喵喵们,明天小夕就正式开学啦.开学后每周有几天的课比较多,小夕为了保证每篇文章的质量,可能做不到每天一更啦.但是小夕也会尽量挤出时间来写文章,尽量保证两三天更一篇.希望不要责怪小夕哦... 分词 ...

  7. NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)

    摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...

  8. NLP学习(二)中文分词技术

    运行平台: Windows Python版本: Python3.x IDE: PyCharm 一. 前言 这篇内容主要是讲解的中文分词,词是一个完整语义的最小单位.分词技术是词性标注.命名实体识别.关 ...

  9. NLP学习(二)—中文分词技术

    本次代码的环境: 运行平台: Windows Python版本: Python3.x IDE: PyCharm 一.    前言 这篇内容主要是讲解的中文分词,词是一个完整语义的最小单位.分词技术是词 ...

最新文章

  1. 多层感知机MLP、RBF网络、Hopfield网络、自组织映射神经网络、神经网络算法地图
  2. 对象级别锁 vs 类级别锁 – Java
  3. python实现一个字典
  4. 神策 FM | “微信之父”张小龙的四大关键产品原则
  5. 桌面支持--电脑出现临时账户--解决办法
  6. Object-c学习之路三(@class与#import的区别)
  7. js判断最后一个字符是不是指定字符_结合简单的 JS 就可以让 CSS 也能做搜索
  8. 使用nltk.pos出现IndexError: string index out of range
  9. c语言编写程序平均值,编写求一组整数的和与平均值的程序
  10. 系统调用和库函数调用
  11. JDBCUtils类测试
  12. Gradle依赖的统一管理
  13. 《物流与供应链管理》课程论文
  14. mac OSX 上 brew install hive
  15. 《Python参考手册》7 类与面向对象编程
  16. ubuntu安装微信
  17. 李航老师对预训练语言模型发展的一些看法
  18. vue 兼容IE解决方案, Babel .babelrc
  19. Java源码:Reference与ReferenceQueue
  20. ISA防火墙策略配置/服务器发布

热门文章

  1. 图片如何无缝拼接?这四个功能让你自由拼图,别错过
  2. 在js中实现毛笔签名和普通签名(elesigncode)
  3. C #error 用法
  4. c语言从文件删除指定行,C++操作文件行(读取,删除,修改指定行)
  5. 招行信用卡微信公众号开发高级篇
  6. 正则里的(.*?)是什么意思
  7. 移动硬盘linux逻辑分区的区别,主磁盘分区、扩展磁盘分区、逻辑分区的区别
  8. 计算机作业我家乡的变化英语作文,家乡的变化英语作文(通用7篇)
  9. 中国民航大学计算机考研资料汇总
  10. java 解析 svg_java 如何读取或解析 SVG 文件(矢量图形文