# 文本挖掘

### 文本挖掘

文本数据挖掘(Text Mining)是指从文本数据中抽取有价值的信息和知识的计算机处理技术。顾名思义，文本数据挖掘是从文本中进行数据挖掘(Data Mining)。从这个意义上讲，文本数据挖掘是数据挖掘的一个分支。

它在商业智能、信息检索、生物信息处理等方面都有广泛的应用，例如，客户关系管理，自动邮件回复，垃圾邮件过滤，自动简历评审，搜索引擎等等。

文本挖掘有三个独特的关键步骤：

-   -   -   分词，通过分词可以将非结构化数据转化为结构化数据
        -   情感分析，定义情感强度，从文本中挖掘作者的情绪或者从评论中挖掘用户的满意度或观点
        -   去噪，即从分出的众多词中剔除干扰的无用的词，提升数据质量。下面结合一个小的案例演示文本挖掘的实现过程。工作流：

### 文本数据

该案例有两个工作流，使用的是 textmining 文件夹的数据。上面一个工作流使用的是已经分过词的结构化数据，只做词云展示，数据名称为《大连旅游度假关键词频数.csv》。下面一个工作流使用的三个文本数据，展示了从读取到分词，再到词云展示，最后又做了情感分析，使用的数据名称为《yantaidujia.txt》、

《yantailvyou.txt》 、《yantaiyanglao.txt》。

### 演示 1

**![](/uploads/projects/mining/202603/189e1de97f72d2cd.jpeg)**

读取数据后，首先使用选择节点筛选高频词，配置如下：

![](/uploads/projects/mining/202603/189e1de9805e63bb.jpeg)

其次，使用词云节点展示词云，配置如下：

![](/uploads/projects/mining/202603/189e1de981437fde.jpeg)

展示结果如下：

![](/uploads/projects/mining/202603/189e1de9829150be.jpeg)

从词云中，我们可以看出，词云中地名除了有大连之外，还有青岛、张家界、江南、桂林、哈尔滨、香港等。这说明提及大连的人中有很多都同时提到了这些地名，如此可以看出，大连在旅游方面竞争力不够强，同时被提到的地方主要都是竞品。

### 演示 2

**![](/uploads/projects/mining/202603/189e1de9835e9ec1.jpeg)**

首先，使用文本挖掘目录下的平面文件节点读取数据，配置如下：

![](/uploads/projects/mining/202603/189e1de9844835d4.jpeg)

读取的文本数据，如下图所示：

![](/uploads/projects/mining/202603/189e1de98618a9b0.jpeg)

其次，使用中文分词节点对 Document 列的文本进行分词，配置如下：

![](/uploads/projects/mining/202603/189e1de986ea4515.jpeg)

可以通过词云查看分词后结果。

最后，使用情感分析节点分析情感强度，节点配置如下：

![](/uploads/projects/mining/202603/189e1de987ba3633.jpeg)

执行后，可以查看情感分析表。

### 小结

通过这两个小示例，我们掌握了文本挖掘的一些基本方法，比如两种做词云的方式，以及如何进行中文分词和情感分析。

### 文本分类

1.  **数据理解**

![](/uploads/projects/mining/202603/189e1de9892f4311.jpeg)该案例使用的数据是 demo 文件夹下的《疾病信息.xls》，包含日志和类型两列数据，数据如下：

### 演示

该案例的工作流如下：

![](/uploads/projects/mining/202603/189e1de98a0a4597.jpeg)

该工作流从读取 Excel 文件开始。首先使用分词对文档进行分词，并使用一系列的手段对词进行过滤。然后，从这些词中提取出最关键的词，并基于关键词生成标志型字段。这些字段将会作为针对文档进行分类预测的影响因素，之后以这些指标为输入，以文档类别为目标建立文档的分类预测模型。

读取数据后，首先使用分词节点对日志字段的记录进行分词，配置如下：

![](/uploads/projects/mining/202603/189e1de98ad6568f.jpeg)

然后，对噪声词进行过滤，配置如下：

![](/uploads/projects/mining/202603/189e1de98bb301b5.jpeg)

执行后，得到如下的过滤表：

![](/uploads/projects/mining/202603/189e1de98cf65430.jpeg)

之后进入数据准备阶段。使用一系列手段对词进行过滤，具体的工作流如下：

![](/uploads/projects/mining/202603/189e1de98df881b7.jpeg)

第一步，将所有字符都转换为小写，配置如下：

![](/uploads/projects/mining/202603/189e1de98ef4a26e.jpeg)

第二步，过滤不需要的字段，配置如下：

![](/uploads/projects/mining/202603/189e1de990156d44.jpeg)

生成的选择表如下：

![](/uploads/projects/mining/202603/189e1de99156a499.jpeg)

第三步，对分词字段进行汇总，配置如下：

![](/uploads/projects/mining/202603/189e1de9926b3e40.jpeg)

第四步，选择计数大于 15 的记录，配置如下：

![](/uploads/projects/mining/202603/189e1de99364a414.jpeg)

生成的选择表如下：

![](/uploads/projects/mining/202603/189e1de994d59715.jpeg)

对于词云展示来说，数据准备进行到这一步就已足够，词云图如下：

![](/uploads/projects/mining/202603/189e1de9961374f3.jpeg)

![](/uploads/projects/mining/202603/189e1de996f5bdae.jpeg)对于文本分类来说，数据准备还要继续进行第五步，参考行过滤。第二步生成的过滤表作为数据表，第四步生成的选择表作为参考表，配置如下：

至此，就完成了文本分类的数据准备，可以进行文本分类了。首先进行缺失值填充，配置如下：

然后使用类型节点，指定“类型”字段为目标，配置如下：

![](/uploads/projects/mining/202603/189e1de997df0d6d.jpeg)

最后，利用朴素贝叶斯节点对文本进行分类，配置如下：

![](/uploads/projects/mining/202603/189e1de998bd7cae.jpeg)

得到如下的预测表和分类预测模型：

![](/uploads/projects/mining/202603/189e1de99a884e29.jpeg)

### 小结

通过这个示例，我们掌握了文本分类的基本步骤，包括对文档进行分词、对词进行过滤以及分类预测。