php 提取中文后简单分词
文章1:汉字一二3四5六七八,九十六七...***********************文本文件txt的内容:六七八六七汉字...*******************...
文章1:
汉字一二3四5六七八,九十六七...
***********************
文本文件txt的内容:
六七八
六七
汉字
...
***********************
第一步:正则提取文章1中2个以上的汉字结果
汉字一二/六七八/九十六七...
第二步:分词结果并去重复
汉字/字一/一二/六七/七八/九十/十六...
第三步:第二步结果把每对汉字分开后判断文件中是否包含
是的话就用“\”分开,得到
汉字\六七\七八 展开
汉字一二3四5六七八,九十六七...
***********************
文本文件txt的内容:
六七八
六七
汉字
...
***********************
第一步:正则提取文章1中2个以上的汉字结果
汉字一二/六七八/九十六七...
第二步:分词结果并去重复
汉字/字一/一二/六七/七八/九十/十六...
第三步:第二步结果把每对汉字分开后判断文件中是否包含
是的话就用“\”分开,得到
汉字\六七\七八 展开
展开全部
$str = "汉字一二3四5六七八,九十六七...";
$s1 = array();//初始化储存第二步结果的数组
//preg_match_all("/[x80-xff]+/", $str, $match);//此为GBK使用
preg_match_all("/[\x{4e00}-\x{9fa5}]{2,}+/u", $str, $match);//此为UTF-8使用
foreach($match[0] as $str1)//循环遍历匹配到的汉字
{
$leng = iconv_strlen($str1, "UTF-8");//计算汉字其长度
for($i = 0; $i < $leng-1; $i++)
{
$temp = mb_substr($str1, $i, 2, "UTF-8");//将汉字切割长两个字,得第一步结果
if(!in_array($temp, $s1))//去除重复,得第二步结果
$s1[] = $temp;//得到的汉字存入数组
}
}
//print_r($s1);//第一二步完成,得数组$s1,可打印查看结果
$s2 = file_get_contents("21.txt");//将文件内所有字符读取成一个字符串
$s2 = iconv("", "UTF-8", $s2);//将字符串转码,否则难免有乱码
//echo $s2;//可输出查看文件中的内容
$s = "";//初始化最终结果的变量
foreach($s1 as $j)//遍历汉字对
{
if(preg_match("/".$j."/", $s2))//判断该汉字对是否被包含于文件的文字中
$s .= ("" == $s) ? $j : "\\".$j;//将结果合在$s中
}
echo $s;//得结果,可输出查看或调用
若有疑问,可追问。
注释详细,希望能加分
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询