Skip to content

ctfang/chinese-word-segmentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中文分词

中文分词-原生php库,可以自定义中文词典

原生php保存整个词典太消耗内存了; 为了把整个词典保存成有向无环图结构, 整整消耗了150多MB内存

  • 正在试验如何使用更低的内存保存词典结构
  • 计算分词的Tf-idf值
  • 封装常用的词性过滤

自定义

耗时和内存都在加载词典上,大量分词的场景只适合cli模式运行;

例如是分析电商评价的好坏情景,最好是自己设计词典:dict.txt内文示例(词频,词性定义不是必须的)

很好 1000 l
太好了 3 l
很实用 12 l
....

示例

require_once '../vendor/autoload.php';

ini_set('memory_limit','1024M');

echo "初始: ".(memory_get_usage()/1024/1024)."MB\n";

$dict = new \ChineseWordSegmentation\TrieTree();
$dict->load();

echo "使用: ".(memory_get_usage()/1024/1024)."MB\n";
echo "峰值: ".(memory_get_peak_usage()/1024/1024)."MB\n";

$str = "我爱北京天安门";
$tags = $dict->extract($str);


echo "语句:".$str."\n得到分词(词频 词性):\n";
print_r($tags);

结果

初始: 0.89760589599609MB
使用: 161.15187835693MB
峰值: 161.16103363037MB
语句:我爱北京天安门
得到分词(词频 词性):
Array
(
    [我] => 328841 r
    [爱] => 14878 v
    [北] => 17860 ns
    [北京] => 34488 ns
    [京] => 6583 ns
    [天] => 35979 q
    [天安] => 273 nz
    [天安门] => 34010 ns
    [安] => 8837 v
    [门] => 39823 n
)

简单过滤词性,计算分词的Tf-idf值,就可以得到需要的内容

其他选择

php扩展scws 但是定制词典麻烦

python结巴 本库/dict/dict.txt 也是使用这个库的词典

About

Chinese Word Segmentation,基于词库的中文分词

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages