【序言】
最近刚入职,为能全面的了解公司,我爬取了公司官网以及博客等信息源的所有内容,希望通过对此内容的集中阅读来逐步认识公司的发展历程、项目案例,体验公司文化,增强自身的主人翁意识。
信息抓取完毕之后对字数进行了统计分析,发现有将近70万字,考虑到该信息集的来源单一,内容的主题相关性强,便希望对这70万的文本进行高频关键词统计,以此在短时间内来把握文本的核心内容。
咨询相关领域的朋友意见并结合搜索引擎里获得的知识,最终选择了基于node.js的中文分词方案,采用的关键技术是node.js的segment模块,该分词模块以盘古分词组件中的词库为基础,算法设计也部分参考了盘古分词组件中的相关算法。
【实现步骤】
首先通过node.js的npm命令装载segment模块,代码如下:
npm installsegment
待模块装载完毕之后,就可以在该文件夹下编写js代码,进行中文分词,代码如下
varSegment = require('./index').Segment;
var POSTAG= require('./index').POSTAG;
var fs =require('fs');
//定义输入文件位置
var text =fs.readFileSync('./text.txt', 'utf8');
varsegment = new Segment();
segment.useDefault();
var result= segment.doSegment(text, {
simple: true,
stripPunctuation: true
});
//定义输出文件位置
fs.writeFileSync('./text分词统计.txt',result)
百万量级的文字在不到两分钟的时间内就分词完毕,接下来要做的事情就是进行词频的统计,并提取高频关键词。考虑到时间有限,我并没有花费经历去研究该模块在这一功能的实现,而是直接利用了excel的分类汇总功能来进行词频的统计,手动抽取高频词。在已经实现分词的基础上,这一步骤并不需要花费太多的精力。
【总结】
利用基于node.js的segment中文分词模块,可以在短时间内对百万量级的中文文字进行分词。结合excel的分类汇总功能,可以实现高频词汇的快速统计,最终达到对百万文本核心内容的快速把握。
要想通过中文分词技术来实现对文本核心内容的快速把握,应该要保证两个前提:其一,文本的主题性要基本一致,其次文本的量级要尽可能的大。
在利用node.js来进行大量分析计算的时候经常会出现内存溢出的情况,可以关注网友们给出的相关解决方案,以防程序出现意外终止。
本文暂时没有评论,来添加一个吧(●'◡'●)