【新手上路常见问答】关于自然语言处理(NLP)

关于自然语言处理,该怎么来学习和研究呢,给大家分享一下。

1. 自然语言处理是什么呢?

自然语言处理是用电子计算机处理和加工人类的书面和口头语言信息的技术。同时它也是人工智能的一个主要内容,是人类用电子计算机模拟人类智能的一个重要尝试,也是人工智能领域的一大难题。

这项技术是一门专门的边缘性交叉性学科,如图所示。
【新手上路常见问答】关于自然语言处理(NLP)_第1张图片
自然语言处理系统包括

  • 机器翻译系统
  • 自然语言理解系统
  • 信息自动检索系统
  • 信息自动抽取系统
  • 文本信息挖掘系统
  • 术语数据库系统
  • 计算机辅助教学系统
  • 语音自动识别系统
  • 语音自动合成系统
  • 文字自动识别系统

举个例子来说,智能问答机器人,比如Siri,就包括了自然语言理解系统、信息自动检索系统、信息自动抽取系统、文本信息挖掘系统、语音自动识别系统和

语音自动合成系统。需要和大家强调的是,智能问答机器人不是简单地搜索关键词寻找对应语句。也就是说,自然语言处理和信息检索还是有所区别的。

2.自然语言处理的基本原理是?

关于机器理解自然语言,早期,人们基于句法–语义规则的方法解决了简单问题,但是无法从根本上将自然语言理解实用化。随着语料库建设和语料库语言学的发展以及计算机技术本身的发展,使用概率和数据驱动的方法,自然语言处理可以专注于大规模真实文本的处理。语料库语言学(英语:corpus linguistics)是基于语言运用的实例(即语料库)的语言研究。 语料库语言学可以对自然语言进行语法与句法分析,还可以研究它与其他语言的关系。具体来讲,就是在句法剖析、词类标注、参照消解、话语分析、机器翻译这些技术中引入概率,并且采用从语音识别和信息检索中借鉴的基于概率和数据驱动的评测方法。

自然语言处理中也使用机器自动学习的方法,让计算机自动地从语料库中获取准确的语言知识。自然语言处理的热点包括建设机器词典和大规模语料库。由于建造标注语料库需要花费较高的成本,相比有监督的机器学习方法,无监督的机器学习技术会得到更广泛的应用。支持向量机技术、最大熵技术、多项逻辑回归、图式贝叶斯模型技术广泛应用于自然语言处理研究。随着高性能计算机的发展和应用,机器学习系统可以得到很好的训练,系统性能也能得到提高。需要强调的是,使用机器学习方法开发的基于语料库的自动分析软件是独立于具体语言的。研究者不需要懂相关语言,只要基于训练语料库使用自动分析软件就可以得出不错的分析结果。

统计数学方法被广泛应用到分析语言数据,建立了概率性的基于统计的语言模型,计算机根据模型的概率参数,可以估计出自然语言中语言成分出现的可能性。语言统计模型包括隐马尔可夫模型(Hidden Markov Model,简称HMM),最大熵模型(Maximum Entropy Model)。支持向量机(Support Vector Machine,简称SVM),条件随机场(Condition Random Field,简称CRF)等。

【新手上路常见问答】关于自然语言处理(NLP)_第2张图片

3.自然语言处理的基本技能是?

如前所述,自然语言处理需要机器学习的相关知识以及统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、EM算法、隐马尔可夫模型和条件随机场等。

理解自然语言处理的基本线路:分词、词性标注、解析

中文分词是中文信息处理的基础。

4.自然语言处理有哪些工具包?

  • HanLP

https://github.com/hankcs/HanLP
中文分词 词性标注 命名实体识别 依存句法分析 语义依存分析 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理
我在一个项目中采用过,质量很不错。

  • Natural Language Toolkit(NLTK):

http://www.nltk.org/

  • 哈尔滨工业大学的工具包LTP http://www.ltp-cloud.com/,

提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、 高效、精准的自然语言处理技术。

  • 清华大学自然语言处理与社会人文计算实验室的一些开源工具包

作者:刘知远
链接:https://www.zhihu.com/question/19929473/answer/90201148
来源:知乎

中文词法分析
THULAC:一个高效的中文词法分析工具包
包括中文分词、词性标注功能。已经提供C++、Java、Python版本。

中文文本分类
THUCTC: 一个高效的中文文本分类工具
提供高效的中文文本特征提取、分类训练和测试功能。

THUTag: 关键词抽取与社会标签推荐工具包
GitHub - YeDeming/THUTag: A Package of Keyphrase Extraction and Social Tag Suggestion
提供关键词抽取、社会标签推荐功能,包括TextRank、ExpandRank、Topical PageRank(TPR)、Tag-LDA、Word Trigger Model、Word Alignment Model等算法。

PLDA / PLDA+: 一个高效的LDA分布式学习工具包
https://code.google.com/archive/p/plda/

知识表示学习
知识表示学习工具包
GitHub - Mrlyk423/Relation_Extraction: Knowledge Base Embedding
包括TransE、TransH、TransR、PTransE等算法。

考虑实体描述的知识表示学习算法
GitHub - xrb92/DKRL: Representation Learning of Knowledge Graphs with Entity Descriptions

词表示学习
跨语言词表示学习算法
Learning Cross-lingual Word Embeddings via Matrix Co-factorization

主题增强的词表示学习算法
GitHub - largelymfs/topical_word_embeddings: A demo code for topical word embedding

可解释的词表示学习算法
GitHub - SkTim/OIWE: Online Interpretable Word Embeddings

考虑字的词表示学习算法
GitHub - Leonard-Xu/CWE

网络表示学习
文本增强的网络表示学习算法
GitHub - albertyang33/TADW: code for IJCAI2015 paper “Network Representation Learning with Rich Text Information”

5.自然语言处理有哪些参考学习资料?

吴军的《数学之美》一书中讲了一些关于自然语言处理的例子,做为入门学习很不错。

冯志伟的《自然语言处理简明教程》这本书讲解了自然语言处理的基本方法,描述了每一种方法的技术原理和实际应用过程,是不错的扩展教程。

Steven Bird的《Python自然语言处理 》也是入门书,帮助读者运用Python和NLTK掌握实用技能。通过示例和练习可以学习抽取信息、解析语言、进行语义分析、访问语言学数据库等等。

Coursera上DeepLearning.AI的在线教程:https://www.coursera.org/specializations/natural-language-processing

欢迎大家留言,一起讨论自然语言处理的学习。

具体内容,欢迎下载幻灯片数据分析与人工智能实践之自然语言处理与图像处理。

你可能感兴趣的:(学习方法,学习资源)