近期准备整理一下自然语言处理方面用到的技术,之前工作都是按照工作需求来走,对用到的技术算法也没有做一下系统性的整体,所以近期准备系统性的整理一下自然语言处理相关的内容。初步构想涉及6个方面的问题。
文本相似度的计算
文本关键词提取
文本分类
情感分析
文本主题提取
命名实体识别
常用的文本相似度的计算方式主要分为基于字符串的与基于语料库的方式。本篇先来讨论一下常用的基于字符串的相似度计算方法。
基于字符串的文本相似度计算方法如下:
该方法从字符串匹配的角度出发,以字符串共现和重复程度为相似度衡量的标准。根据计算细粒度不同,可以将方法分为基于字符的方法和基于词语的方法。一类方法单纯从字符串或词语的组成考虑相似度算法,如编辑距离,汉明距离,余弦相似度,Dice系数,欧式距离;另一类方法还加入了字符串顺序,即字符组成和字符顺序相同是字符串相似的必要条件,如最长公共子串,Jaro-Winkler,再一类方法是采用集合的思想,将字符串看作由词语构成的集合,词语共现可用集合的交集计算,如Jaccard。
基于字符
编辑距离(Levenshtein)
汉明距离
LCS
Jaro-Winkler
基于词语
余弦相似度
Dice系数
欧式距离
Jaccard
simhash+汉明距离
minhash
基于语料库
VSM
LSA
PLSA
LDA
下面针对每一个计算方式来逐一介绍。</