php 中文分词函数代码一例
发布时间:2015-12-26 编辑:jiaochengji.com
为大家介绍一个php中文分词的函数,可能在某些场合用得上,有需要的朋友,参考下吧。
代码如下:
<?php /** * php 中文分词 * by http://www.jbxue.com */ class Segmentation { var $options = array('lowercase' => TRUE, 'segment_english' => FALSE); var $dict_name = 'Unknown'; var $dict_words = array(); function setLowercase($value) { if ($value) { $this->options['lowercase'] = TRUE; } else { $this->options['lowercase'] = FALSE; } return TRUE; } function setSegmentEnglish($value) { if ($value) { $this->options['segment_english'] = TRUE; } else { $this->options['segment_english'] = FALSE; } return TRUE; } function load($dict_file) { if (!file_exists($dict_file)) { return FALSE; } $fp = fopen($dict_file, 'r'); $temp = fgets($fp, 1024); if ($temp === FALSE) { return FALSE; } else { if (strpos($temp, "t") !== FALSE) { list ($dict_type, $dict_name) = explode("t", trim($temp)); } else { $dict_type = trim($temp); $dict_name = 'Unknown'; } $this->dict_name = $dict_name; if ($dict_type !== 'DICT_WORD_W') { return FALSE; } } while (!feof($fp)) { $this->dict_words[rtrim(fgets($fp, 32))] = 1; } fclose($fp); return TRUE; } function getDictName() { return $this->dict_name; } function segmentString($str) { if (count($this->dict_words) === 0) { return FALSE; } $lines = explode("n", $str); return $this->_segmentLines($lines); } function segmentFile($filename) { if (count($this->dict_words) === 0) { return FALSE; } $lines = file($filename); return $this->_segmentLines($lines); } function _segmentLines($lines) { $contents_segmented = ''; foreach ($lines as $line) { $contents_segmented .= $this->_segmentLine(rtrim($line)) . " n"; } do { $contents_segmented = str_replace(' ', ' ', $contents_segmented); } while (strpos($contents_segmented, ' ') !== FALSE); return $contents_segmented; ?>
您可能感兴趣的文章:
php记录搜索引擎关键词的代码示例
PHP中文分词 自动获取关键词的方法
HubbleDotNet 索引分词的测试方法和分词技巧
php实现中文分词的例子
如何安装 php scws(分词组件)?
php 统计字数(支持中英文)的实现代码
PHP统计字符串中单词出现次数的函数
php中文分词与自动获取关键词的方法
php 中文分词函数代码一例
php替换html内容的小函数
[关闭]