javascript实现中文分词的4种方式

js实现中文分词的4种方式

javascript实现中文分词的4种方式

中文分词指的是讲一段话拆解成不同的词汇,并且标注词性,这在搜索引擎中使用比较频繁,在js中也可以进行中文的分词处理,今天介绍4种方式:

一、浏览器中使用js进行分词

浏览器中使用js进行分词,我们使用chrome浏览器内置的库Segmenter库,示例代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
    <title>BFW NEW PAGE</title>

    <script type="text/javascript">
        console.table(Array.from(new Intl.Segmenter('cn', { granularity: 'word' }).segment('欢迎来到BFW开发社区~~')))
    </script>

</head>

<body>

</body>

</html>

分词效果:

javascript实现中文分词的4种方式

二、nodejieba库进行分词

安装

npm install nodejieba

示例代码:

var nodejieba = require("nodejieba");
var result = nodejieba.cut("欢迎来到BFW开发社区~~");
console.log(result);

javascript实现中文分词的4种方式

三、segment库分词

安装

npm install segment

示例代码:

const Segment = require('segment');
const segment = new Segment();
segment.useDefault(); // 载入默认词典
//segment.loadDict('test.text'); // 载入字典,详见dicts目录,或者是自定义字典文件的绝对路径
const text = "欢迎来到BFW开发社区~~";
console.log(segment.doSegment(text, {
  stripPunctuation: true //去除标点符号
}));

javascript实现中文分词的4种方式

四、自己写一个中文分词

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">

</head>

<body>
    <script type="text/javascript">
        // 字典
        var dict  = {
        	"家乡"     : 1,
        	"松花"     : 1,
        	"松花江"   : 1,
        	"那里"     : 1,
        	"四季"     : 1,
        	"四季迷人" : 1,
        	"迷人"     : 1,
        	"花香"     : 1
        };
        // 停止词
        var stop  = {
        	"的" : 1
        };
        // 待分词的字符串
        var words = "我的家乡在松花江边上,那里有四季迷人的花香。";
         
        function splitWords(words) {
        	var start = 0, end = words.length - 1, result = [];
        	while (start != end) {
        		var str = [];
        		for (var i = start; i <= end; i++) {
        			var s = words.substring(i, i + 1);
        			// 如果是停止词,则跳过
        			if (s in stop) {
        				break;
        			}
        			str.push(s);
        			// 如果在字典中,则添加到分词结果集
        			if (str.join('') in dict) {
        				result.push(str.join(''));
        			}
        		}
         
        		start++;
        	}
         
        	return result;
        }
         
        console.group("Base 分词: ");
        console.log("待分词的字符串: ", words);
        console.log("分词结果:       ", splitWords(words));
        console.groupEnd();
    </script>
</body>

</html>

javascript实现中文分词的4种方式

{{collectdata}}

网友评论0