php 建立 搜索 分词树
<?php
/**
* @author: xiaojiang 20140107
* php 建立分词树
* */
class Tree{ public $w = '';
public $subT = array();
public $isEnd = false; public function __construct($w= '' , $isEnd = false){
if(!empty($w)){
$this->w = $w;
$this->isEnd = $isEnd;
}
}
public function insert( $str ){ $len = strlen($str);
if(!$len) return ;
$scope = $this;
for( $i = 0; $i< $len; $i++ ){
//判断汉字
$cStr = $str[$i];
if( ord( $cStr ) > 127 ){
$cStr = substr($str, $i, 3);
$i += 2;
}
$scope = $scope->insertNode( $cStr );
}
$scope->isEnd = true;
} private function &insertNode( $w ){
$t = $this->hasTree( $w );
if( !$t ){
$t = new Tree( $w );
array_push($this->subT, $t );
}
return $t;
} private function &hasTree($w){
foreach ($this->subT as $t){
if($t->w == $w)
return $t;
}
return false;
} }
$tIns = new Tree();
$tIns->insert('啊啊');
$tIns->insert('啊你妹');
$tIns->insert('你妹');
print_r($tIns); ?>
php 建立 搜索 分词树的更多相关文章
- PHP 搜索分词实现代码
<?php /** * @author: xiaojiang 2014-01-08 * php 建立分词树 * */ class Tree{ public $w = ''; public $su ...
- 第14章8节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树
在上几节的描写叙述中,我们把HierarchyViewer初始化好.也把ViewServer给装备好了.那如今距离获得一个控件去操作它是万事具备仅仅欠东风了,欠了那一股春风了?欠了的是建立控件树这个东 ...
- C/C++深度优先搜索(递归树模拟)
//C++深度优先搜索(递归树模拟) #define _CRT_SECURE_NO_WARNINGS #include <iostream> #define MAX_N 1000 usin ...
- matlab练习程序(快速搜索随机树RRT)
RRT快速搜索随机树英文全称Rapid-exploration Random Tree,和PRM类似,也是一种路径规划算法. 和PRM类似,算法也需要随机撒点,不过不同的是,该算法不是全局随机撒点,而 ...
- Solr7.1---数据库导入并建立中文分词器
这里只是告诉你如何导入,生产环境不要这样部署你的solr服务. 首先修改solrConfig.xml文件 备份_default文件夹 修改solrconfig.xml 加入如下内容 官方示例:< ...
- 为SharePoint Server 2013 建立搜索爬行
当搭建好SharePoint Server 2013 之后系统内的爬行信息是空白的,因此需要进行搜索爬行行为的开启. 确认系统上的服务 首先进入到系统的服务中services.msc 确保如下的Sha ...
- [matlab] 7.快速搜索随机树(RRT---Rapidly-exploring Random Trees) 路径规划
RRT是一种多维空间中有效率的规划方法.它以一个初始点作为根节点,通过随机采样增加叶子节点的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目标区域,便可以在随机树中找到一条由从初始 ...
- solr搜索分词优化
solr服务器配置好在搜索时经常会搜出无关内容,把不该分的词给分了,导致客户找不到自己需要的内容,那么我们就从配置词典入手解决这个问题. 首先需要知道自带的词典含义: 停止词:停止词是无功能意义的词, ...
- 利用CART算法建立分类回归树
常见的一种决策树算法是ID3,ID3的做法是每次选择当前最佳的特征来分割数据,并按照该特征所有可能取值来切分,也就是说,如果一个特征有四种取值,那么数据将被切分成4份,一旦按某特征切分后,该特征在之后 ...
随机推荐
- 关于Python的装饰器 decorator
装饰器的原理:其实就是高阶函数,接收原函数以在之前之后进行操作. 语法格式是固定的:先定义一个函数,再使用@语法调用该函数. 例子一: import functools # 定义装饰器,固定格式 de ...
- Java数组填充和初始化
Java中,如何填充(一次初始化)数组? 示例 此示例使用Java Util类的Array.fill(arrayname,value)方法和Array.fill(arrayname,starting ...
- linux中CURL的安装(转)
转自(http://blog.csdn.net/makenothing/article/details/39250491) curl是一款著名的字符界面下的下载工具,支持HTTP.HTTPS.FTP. ...
- Eclipse中创建Maven项目失败
Eclipse中创建Maven项目报错:Unable to create project from archetype org.apache.maven.archetypes:maven-archet ...
- C# 抓取网页的img src带参数的图片链接,并下载
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- windows 找不到文件'igfxHK.exe'
现象:开机时windows报:windows 找不到文件'igfxHK.exe' 解决办法:win+r 输入services.msc 进入服务管理, 找到服务名称为: Intel(R) HD Gr ...
- iOS:TabBarController 显示/隐藏第一级页面的TabBar
- (void)setTabBarHidden:(BOOL)hidden { UIView *tab = self.tabBarController.view; ) { return; } UIVie ...
- NFS介绍 NFS服务端安装配置 NFS配置选项
NFS 介绍 • NFS是Network File System的缩写 • NFS最早由Sun公司开发,分2,,4三个版本,2和3由Sun起草开发,.0开始Netapp公司参与并主导开发,最新为4.1 ...
- CSS z-index优先级
可以设置div层与层之间的优先级,上下层覆盖优先情况. 当你定义的CSS中有position属性值为absolute.relative或fixed, 用z-index取值方可生效. 如果想要一个小的d ...
- [Learn AF3]第三章 App Framework 3组件之Panel:afui的核心
Panel,afui的核心组件 组件名称:Panel 使用说明:按照官方的说法,panel组件是af3的“核心(heart of the ui)”,panel用于构造应用中独立的内容展示区域, ...