语意分析

语意分析（semantic analysis）技术是指将一长串的文字或内容，从其中分析出该个段落的摘要以及大意，甚至更进一步，将整篇文章的文意整理出来。此项技术可以应用在解读影片、音讯等档案，使得搜索引擎能够搜寻到文字以外的物件，方便使用者省去大量时间观看影片、聆听音讯，同时也可以帮助使用者提前了解影片与音讯的内容。

语意分析技术在早期基于奇异值分解（Singular Value Decomposition, SVD）、非负矩阵拆解法（Non-negative matrix factorization,NMF）等方式，近年来则有用各种型态的类神经网络（Neural Network, NN）来完成语意分析的目的。

## 实作方式

### 奇异值分解（Singular Value Decomposition, SVD）

在线性代数的领域里，奇异值分解（SVD）将一个大的矩阵拆解成三个小的矩阵。

正常的情况下，将奇异值分解（Singular Value Decompositiob, SVD）套用在一个m×n复数矩阵M，可以矩阵M表示为M = UΣV∗，其中U是m×m复数幺正矩阵（unitary matrix），而Σ则是一个m×n的对角矩阵（diagonal matrix)，而在对角线上的所有直接为非负的值,V∗（共轭转置矩阵（conjugate transpose matrix）V,倘若所有元素皆为实数，则可视为V的转置矩阵'）则是一个n×n复数幺正矩阵。在对角矩阵中，Σi,i of Σ便是所谓的M的奇异值（singular value）。而U的m栏则被称做是M的左奇异向量（left-singular vectors），V的n栏则被称做是M的右奇异向量（right-singular vectors）。

奇异值分解与特征分解（eigendecomposition）实现息息相关，具体如下：

- M的左奇异向量（left-singular vectors）是MM∗的特征向量。
- M的右奇异向量（right-singular vectors）是M∗M的特征向量。
- M的非零奇异值 (在Σ的对角列上)之平方根则是M∗M and MM∗共同的特征值。

透过SVD便可以将一个矩阵拆解成R（非负奇异值之数量）种不同的矩阵，每一种矩阵分别代表一种主题（topic），而相对应的奇异值越大则代表此种主题与原本的矩阵所代表的主题较为相关，越小则越非相关，由此我们可以得到简单的语意分析。

### 非负矩阵拆解法（Non-negative matrix factorization,NMF）

<image>

由于透过奇异值分解（Singular Value Decompositiob, SVD）存在一些缺点，因此使用非负矩阵拆解法（Non-negative matrix factorization,NMF）来得到更好的效果，首先，由于奇异值分解（Singular Value Decompositiob, SVD）所得到的左奇异向量（left-singular vectors）与右奇异向量（right-singular vectors）并无法保证皆为非负之数值，因此在衡量相关性上，负数可能并没有直观的物理意义。同时透过奇异值分解（Singular Value Decompositiob, SVD）所产生的三个矩阵，在选择过滤掉一些较小的奇异值后，在重新组合回来，会直接失去这些资讯，太过于武断、直接的拆解方式，可能会导致部分讯息也因此而被移除了。因此使用非负矩阵拆解法（Non-negative matrix factorization,NMF）便能解决上述两个问题。非负矩阵拆解法（Non-negative matrix factorization,NMF）将m×n的原始矩阵V拆解为m×d的W与d×n的H，其中的d便为给定的数值。与奇异值分解（Singular Value Decompositiob, SVD）的差别在于，非负矩阵拆解法（Non-negative matrix factorization,NMF）可以自订分类的多寡，而将整个矩阵完整的分配到d种主题之中（topic），不若前者，若要取得d种主题，便会直接选取前d大的奇异值，将矩阵还原回来。而是将其妥善分配至各个主题中，使得最后的结果较为完整。

### 类神经网络（Neural Network, NN）

<image>

类神经网络系以一张有方向性的图论模拟人类神经细胞之间的沟通关系。人类神经细胞从输入到输出，主要有三个部分，第一个部分为树突，乃神经接受另一神经之讯号的所在之处，而神经本体则综合输入讯号之后产生一个输出讯号，透过轴突将讯号往外传出。这样的架构，可以透过矩阵的建置来模拟出神经连结的情形。同时，透过建置矩阵模拟各个神经结之间相连的关系，透过给订的输入与输出作为测资，不断的优化各个节点之间的关系，直到输入与输出能够互相吻合，达到此目标的类神经网络模型便可作为一个语意分析器，只要输入待测的资料，便可以得到一个系统分析之后预测的结果。相较于前述两种方法，类神经网络（Neural Network, NN）通常都可以得到较佳的结果。相关的理论自1980年便已经被提出，不过直至2010年后，硬件运算速度才足以在使用者可接受的时间内，产生出一个完整的结果，才使得类神经网络（Neural Network, NN）开始蓬勃发展，同时也逐渐有些成果开花结果。

#### 自动编码器（Autoencoder）

自动编码器（Autoencoder）为类神经网络（Neural Network, NN）的其中一种应用，目标在将大量的资量压缩、分配至较小维度的向量之中。一般的类神经网络（Neural Network, NN）需要确切的输出与输入才能建立出完整的类神经网络（Neural Network, NN），因此常需要花大量的成本在建立足够量的训练用测资，而自动编码器（Autoencoder）在训练用测资的要求简单的许多，由于其目标之特性是将大量的资量压缩、分配至较小维度的向量，其输入与输出可以使用同一份资料，而在隐藏层（hidden layers）中，一层接着一层，逐渐缩小每个隐藏层（hidden layers）的层级数，直到需要的d种分类后，再逐渐扩展每个隐藏层（hidden layers）的维度，直到最后输出与原本训练用测资的维度。当经过足够次数的循环后，必可以得到一个模型，使得输入资料与输出资料差异不大，此时，只要将前半段，输入端至d维的隐藏层（hidden layers）切开并独立出来，这份模型便可以作为语意分析器。

## 应用

有鉴于社群平台的兴盛，影片、声音等多媒体资讯逐渐成为网络上常见的档案形式，如何用低成本的方式解读其中所拥有的资讯在未来会是一个日益重要的议题。传统上，若要能够提前理解一段声音中所拥有的资讯，往往需要使用高成本人力事先解读整段音讯后，在将其所见所闻转换为文字档，在影片、声音等多媒体资讯日益兴盛的现代，如此高成本的建置方式早已不敷使用。因此语意分析绝对有其必要性。

而在人机界面上，装置能够解读人类的讯息，并做出相对应的决策，亦可以增加人机之间沟通的效率。

### 语意分析的多种应用

自动摘要：语意分析技术可找出文章中的重要字词、摘要，让人能短时间快速了解内文。

以文找文：语意分析能透过文章中的重要、关键字词，进而并找出相关文章，Google新闻把相关性、类似的文章聚集，便是利用语意分析的技术。

广告信侦测：以 Gmail 为例，语意分析能判断一封信中是否包含广告信的常用字词，协助信箱进行筛选。

意见分析与情感分析：根据提到相关企业或产品的文章进行分析，筛选通篇文里的正负面字词，分析企业在网络上的口碑、评价，分析网友的观点与情感。这项功能也能运用在企业客服中，侦测消费者的抱怨内容。

写作辅助：机器与人工能共同创作，语意分析技术能帮忙选词、校正文法。

电脑问答：如同 Siri，语意分析可应用在人工智能对话，协助使用者利用问答的方式找寻所需的资讯。

文本标记/分类：过去研究单位在处理大量文本资料时，必须雇请大量的人力进行标记、分类，才能进行分析，但随着资料处理的技术不断革新，现在借由机器学习、深度学习等，透过模型训练后，自动对每篇文章分类、标记出其属性词汇。