W4J音乐热评一生成评论词云一Nodejs开启子进程
功能场景
- 获取888条评论内容,使用
segment
进行分词。 - 统计词出现次数,生成
{'喜欢':67,'爱情':56}
数据结构。 - 前端使用
echarts-wordcloud
生成词云。
功能难点
- 使用 segment 中文分词模块,但是会有一个小问题:
请勿用此模块来对较长且无任何标点符号的文本进行分词,否则会导致分词时间成倍增加
。 - 实际情况也是如此,个别时候分词会导致长时间无反应,相当长的时间,但有时候也会很流畅。
解决方案
- 开启
Nodejs
子进程,单独运行分词功能。 - 若超出设定的运行时间,关闭子进程。提示用户重新生成。
代码实现
子进程代码ciYun.js
- 将其封装成自执行模块
|
- 获取评论信息,处理成长字符串
|
- 设置
segment
参数,进行分词
|
- 分词数组进行统计词个数
|
- 将准备好的数据通过
IPC
通道发送到父进程,之后关闭IPC
通道
|
主进程代码index.js
- 创建异步子进程的方法,更多信息可参考child_process
|
- 创建子进程运行
ciYun.js
|
- 监听子进程通过
IPC
通道发送的数据
|
- 设置超时时间,若超时关闭子进程
|