中企动力 > 头条 > 词典

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

词典

自建个性化的coreseek分词词库 流量视频课程

img

鲸鱼

关注

  下面给大家介绍一下如何打造自己的coreseek分词词库。coreseek自身带的词库不是很大,直接使用它分词可能会返回大量没用结果。要想搜索结果准确打造一个专门的分词词库必不可少。

  i.首先到搜狗http://pinyin#sogou#com/dict/下载你要的词库

  ii.因为下载回来的词库不是文本文件我们不能直接使用,所以要先转换成文本文件。网上找一个搜狗转google的小工具,用它把你下载的全部词库转成文本文件。合并为一个文件命名为words.txt。文件要用utf8编码保存,如果想直接使用我下面的工具进行转换的话文件名一定要是words.txt。如果你想自己转换请参考官网上的方法http://www#coreseek#cn/opensource/mmseg/

  iii.现在我们有了一个初步的词库,但这个词库还不能直接使用,要再整理并转换coreseek使用的格式才行。这里我提供一个自己编写的小程序方便转换。源程序如下:

/**
Lastedit2012-8-11
Copyrigh@www.4ji.cn
**/
ini_set('max_execution_time','6000');


$buffer=ini_get('output_buffering');
if($buffer)ob_end_flush();

echo'处理新词库...
';
flush();
$filename="words.txt";
$handle=fopen($filename,"r");
$content=fread($handle,filesize($filename));

fclose($handle);

$content=trim($content);
$arr1=explode("\r\n",$content);
$arr1=array_flip(array_flip($arr1));
foreach($arr1as$key=>$value){
$value=dealchinese($value);
if(!empty($value)){
$arr1[$key]=$value;
}
else{
unset($arr1[$key]);
}

}

echo'处理原来词库...
';flush();
$filename2="unigram.txt";
$handle2=fopen($filename2,"r");
$content2=fread($handle2,filesize($filename2));
fclose($handle2);
$content2=dealchinese($content2,"\r\n");
$arr2=explode("\r\n",$content2);
echo'删除相同词条...
';flush();
$array_diff=array_diff($arr1,$arr2);

echo'格式化词库...
';flush();
$words='';
foreach($array_diffas$k=>$word){
$words.=$word."\t1\r\nx:1\r\n";
}
//echo$words;
file_put_contents('words_new.txt',$words,FILE_APPEND);
echo'done!';

functiondealChinese($str,$join=''){
preg_match_all('/[\x{4e00}-\x{9fff}]+/u',$str,$matches);//将中文字符全部匹配出来
$str=join($join,$matches[0]);//从匹配结果中重新组合
return$str;
}
?>

  使用方法如下:

  1.把words.txt,转换工具words_format.php及c:\coreseek\etc\unigram.txt三个文件放到能运行php的服务器同一个目录下.

  2.然后访问words_format.php.

  3.等待程序运行完,时间长短要看你词的多少,太多的话中间可能假死。运行完后会在相同目录下生产words_new.txt把这个文件加到原unigram.txt的后面,保存备用.

  4.把上面得到的文件unigram.txt复制到C:\coreseek\bin然后在命令行下进入目录C:\coreseek\bin执行mmseg-uunigram.txt该命令执行后,将会在unigram.txt所在目录中产生一个名为unigram.txt.uni的文件,将该文件改名为uni.lib,完成词典的构造。

  5.测试新词库能否正解分词。在C:\coreseek\bin下新建文本文件test.txt。输入要测试的关键词。例如:四季服装网中大面料辅料,然后保存。当中一定要包含你新加进词库的某个关键词。例如四季服装网是我新加的关键词。然后在刚才的命令行下执行mmseg-dC:\coreseek\bintest.txt>result.txt.执行完后打开新生产的结果文件result.txt.如果看到分词结果类似四季服装网/x中大/x面料/x辅料/x的话证明词库已正确生成,如果看到新关键词被分切开如:四/x季/x服/x装/x网/x中大/x面料/x辅料/x的话就说明新的词库并不正确。要检查一下哪里出错了,重新生产。

  6.再把得到的uni.lib复制到C:\coreseek\etc覆盖原文件就大功告成了

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP