Nlp在方法技巧方面怎么学习,有哪些路线和学习内容。看什么书。是本文目的。
首先NLP本身的知识是很重要的。在大多数企业里,文本数据是重要的数据资产,基于此可以做大量的工作来为公司的核心业务目标服务。
这里主要讲针对搜索场景来展开学习内容和流程。
基于搜索场景
分词
分词,以及由此衍生出的term重要性、切词粒度和紧密度等问题。看似简单,其实不然。
比如长春市长春药店,切出来“长春市/长春/药店”还是“长春/市长/春药店”。
比较有名的分词工具有python版本的jieba,NLTK等。
Query处理的基本能力
分词是第一步处理,接着是query纠错,新词发现。互联网不断造出新词,比如”蓝菇香瘦“,怎么发现新词也是一个很大的挑战。
Query分析的基本能力
序列标注问题。
怎么识别实体,怎么识别query中的品牌词。品牌词识别在搜索广告中的一个重要问题。
比如你在搜索广告部门工作,用户搜索“王者荣耀游戏官方网站”,你给出一个“阴阳师游戏官方网站”的广告. 对于“王者荣耀”这样的热词,是一个相对好处理的问题。但是搜索广告中有大量的广告主,有时候要去区分它们是很头疼的事情,比如“张爱国足疗店”,“李爱国足疗店”。它们的字面相似度很高,但就是不同的服务商。
关联词对挖掘
关联词对挖掘,同义词挖掘。给一个query,给他寻找相关的query.这是NLP中的一个基本问题。
基于频繁项挖掘的方法(数据挖掘中经典的apriori算法)、基于相似度的方法(如基于点击行为的cos相似度)。
Query相关性度量
这个方法就很多了,从简单的tf-idf相似度到word2vec相似度、基于主题模型的相似度(plsa\ida)等。
当然,通常会去训练一个相关性模型,通过规则和人力结合的方法去标注一批数据,然后选择一系列特征(字粒度或者词粒度、词袋、词向量、ngram等)选择一个模型(lr svm 最大熵 随机森林 gbdt dnn cnn rnn等都有可能),最后训练出一个模型。当然在实际工程应用中,为了追求最佳的效果,往往会把多个模型进行bagging,达到一个最优的效果。
NLP的高级模型
以上是Nlp本身的一些内容点,那对于机器学习,深度学习也是可以理解为研究NLP的工具。需要对机器学习有一定的认识。推荐李航的机器学习和机器学习实战这两本书。当然最好能对线性代数和概率论,微积分有一定的复习。然后就是深度学习。
主题模型
主题模型在前几年曾经非常火,从PLSA到LDA,取得了广泛应用,后来word2vec问世,在很多方面将其取代。
词向量模型
包括word2vec和fasttext
深度学习
深度学习在NLP方面也发挥出强大的威力,比如百度和谷歌在机器翻译中都成功地应用了深度学习,百度广告部门某团队通过采用深度神经网络使得广告收入取得较大幅度的增加并获得公司最高奖。
其他技能
基本的语言能力:Linux,Python,C++,Java
算法和数据结构功底
机器学习理论和一定的实战经验。
Hadoop
NLP有关的大数据竞赛。比如kaggle可以学习一下。