自然语言处理研究的是词、句、文档等几个层次的内容。
一、层次概念
理论流派
1、形式语法(复杂特征集)
2、词汇主义方法(WordNet、ConceptNet、FrameNet), 人工总结和整理概念、层次、结构等
3、统计语言模型(语言有统计规律性,让机器去自己学习规律)
统计语言模型的细化(怎么描述语言的结构构成,比如词语怎么构成短语,句子,文章)
1、单词的组合形成短语(没有顺序和上下文信息),使用词袋来描述短语(one-hot representation)
2、组合+序列组成短语。分布表示:包含顺序和上下文信息。
分布表示的形式
1、矩阵描述,比如一个词和所有n个词上下文的矩阵(维度太大)
2、神经网络表示n-gram,用网络结构来描述每一个词的上下文环境
3、CBOW(Continuous Bag-of-Words)和 Skip-gram,用深度学习的方式抽取特征,简化了网络结构
CBOW 和skip-gram的训练方式
word2vec
简单说:统计模型->词袋->n-gram->CBOW->word2vec
语句描述为词向量的序列构成的向量
二、预处理
1、去除html tag
2、编码
3、doc --》句子--》单词(词性tag等)
4、去掉标点、太短的单词
5、去掉停用词
6、抽取词干(stemming )分词,原型,过去式,近义词 统一成一个
二、分析(拆分,之后汇总理解):
1、分词、标注、统计词频等
2、信息提取(识别短语+识别entity+提取关系),非结构化->结构化(知识表达)
3、自动抽取 关键词、摘要;相似度比较(文档层面)
4、主题抽取(单文档) Gensim LDA:基于词袋的模型来进行主题抽取,所以效果不如基于CBOW的
5、分类、聚类(多文档)
6、情感分析
7、消除歧义
8、句法分析(谓词逻辑(sql)-》 问答和翻译)
9、抽象含义?言外之意?推理规则?
概括:摘要、主题、情感、分类(都是语义层面的)
三、应用
推荐系统
问答系统
对话系统
机器翻译
四、基本概念
1、TF(词频):某个单词在整个文档中出现的频率
2、IDF(逆向文件频率):总文件数目除以包含该词语之文件的数目,之后取对数,(描述是否在比较少的文件中存在)
TF-IDF(term frequency–inverse document frequency):TF与IDF的乘积,可以作为文件的特征。TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
3、命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。
4、n-gram 搜索n个词的上下文来确定词性和含义,即下一个词与前面的n-1个词有关系
5、wordnet 近义词典
五、相关库
传统基于词袋的库:
抽取主要的词和句子 xiaoxu193/PyTeaser (比较相似性)
相似度比较 nhirakawa/BM25
情感分析 sloria/TextBlob
NLTK
snownlp 集成
基于深度学习的
生成标题 https://github.com/rockingdingo/deepnlp/tree/master/deepnlp/textsum
主题抽取 Gensim
情感分析 xiaohan2012/twitter-sent-dnn wendykan/DeepLearningMovies