字体:  增大          减小       

8-2 自然语言处理入门要点

8-2 自然语言处理入门要点

1.为什么NLP很难

人类语言有其特殊性。人类语言专门用于传达讲话者和写作者的意思,即使小孩子能够很快学会,它依然是一个复杂的系统。它的另一个显著之处在于它完全与符号有关。Chris Manning(斯坦福教授)表示,它是一个离散的、象征性的、绝对的信号系统,这意味着人们可以通过使用不同的方式传达相同的含义,比如演说,手势,信号等。人类大脑对这些符号的编码是持续的激活模式,在这个模式中,符号通过声音和视觉的连续信号实现传输。

由于其复杂性,理解人类语言被认为是一项艰巨的任务。例如,在句子中排列单词有无数种不同的方法。此外,一个单词可以有多种含义,并且正确解释句子需要恰当的语境信息。每种语言或多或少都是独特且含糊的。比如:“The Pope’s baby steps on gays”,这句话显然有两种截然不同的解释,这是反映NLP中的困难之处的一个很好的例子。

随着计算机对语言的理解愈渐完美,将会产生可以处理互联网上全部信息的人工智能(AI),继而产生强人工智能(AGI)。

2.句法和语义分析

句法分析和语义分析是理解自然语言的两种主要方法。语言是一组意义的语句,但是什么使语句有意义呢?实际上,你可以将有效性分为两类:句法和语义。术语“句法”是指文本的语法结构,而术语“语义”是指由它表达的含义。但是,句法上正确的语句不必在语义上正确。只需看看下面的例子。语句“cow kow supremely”在语法上是有效的(主语-动词-副词),但没有任何意义。

句法分析:

图8-2-1 句法分析示意图

 

句法分析,也称为语法分析或解析,是通过遵循正式语法规则来分析自然语言的过程。语法规则适用于单词和词组,而不是单个单词。语法分析主要为文本分配语义结构。

语义分析:

我们理解他人的语言是一种无意识的过程,依赖于直觉和对语言本身的认识。因此,我们理解语言的方式很大程度上取决于意义和语境。计算机却不能依赖上述方法,需要采用不同的途径。 “语义”这个词是一个语言术语,意思与意义或逻辑相近。

因此,语义分析是理解单词、符号和语句结构的含义和解释的过程,这使计算机能够以人类的方式理解部分涉及意义和语境的自然语言。为什么说只能部分理解呢?是因为语义分析是NLP中最棘手的部分之一,仍未完全解决。例如,语音识别技术已非常成熟,并且工作近乎完美,但仍然缺乏在自然语言理解(例如语义)中的熟练程度。手机基本上可以理解我们所说的内容,但通常无法用它做任何事情,因为它不了解其背后意义。

4.理解文本的技巧

下面我们将讨论多种用于自然语言处理的现行技术。

什么是解析?首先,让我们看一下词典释义:

解析—“将句子分解为其组成部分,并阐述各部分的句法角色。”

实际上解释的已经非常到位,但它可以更全面一些。解析是指计算机对句子的形式分析,其结果是一个解析树,这个解析树可以可视化地显示句子成分之间的句法关系,用于进一步处理和理解。

在下面你可以看到句子“The thief robbed the apartment”的解析树,以及由它传达的三种不同信息类型的描述。

图8-2-2 文本理解解析树示意图

 

先看单个单词正上方的字母,它们用于显示每个单词的词性(名词-N,动词-V和限定词-DT)。我们再看解析树中更高的层级,一些单词进行层次分组组成短语。例如,“the thief”是一个名词短语(NP),“robbed the apartment”是一个动词短语(VP),这些短语一起形成一个句子(S),在树中标记在更高的层级。

这些短语以名词为主体,包含一个或多个单词,可能还包含描述性词语、动词或副词,简言之,就是把把名词和与其相关的单词组合在一起。

从解析树中还能看出,单词的表述结构影响其在句中的语法关系。例如,在此结构中,“thief”是“robbed”的主语。

结合结构来看,动词“robbed”,上方标有“V”,更上一级标有“VP”;主语“thief”,上方标有N和“NP”,通过“S”联系在一起。这就像主语—动词关系的模板,同样还有许多其他类型的关系。

词干提取:

词干提取是一种来自形态学和信息检索的技术,在NLP中用于预处理和效率提升。但是,我们首先看一下词典中的释义:词干 — “起源于或由其引起。”

基本上,“词干提取”是将单词进行缩减得到词干的过程,而“词干”的实际意义是是在删除单词的所有的前缀后缀之后保留的一部分。例如,“touched”,它的词干是“touch”,同时“touch”也是“touching”等词的词干。

为什么需要词干?因为我们会遇到不同的词汇变形,而实际上它们具有相同的词干和意义。举例来说:

# I was taking a ride in the car

# I was riding in the car.

这两个句子意思是一致的,ride和riding的用法也是相同的。

词汇表中所有的单词有不同的注释,其中还包括大量实际意义相同的单词,要存储它们,需要一个庞大数据库,但是通过词干提取,仅关注单词的词干,可以很好地解决这个问题。现行的通用算法之一是1979年的“Porter Stemming Algorithm”(波特词干算法),非常使用便捷。

文字分割:

NLP中的文本分割是将文本转换为有意义的单元的过程,可以是单词、句子、也可以是不同的主题或潜在的意图等。在文本分割中,文本根据不同语种被分割为成份单词,由于人类语言的复杂性,通常比较难。举个例子,在英语中利用空格来分隔单词,相对高效实用,但是也有像“ice box”这类词语的例外,ice和box这两个由空格隔开的词合并一起使用才有原本含义的,所以人们有时把它写作“ice-box”,那么就给文字分割带来了难题。

命名实体识别:

命名实体识别(NER)用于确定文本中哪些词条属于命名实体,这些词条可以被定位并归入预定义的类别,类别的范围包括人名,组织,地点,还有货币价值和百分比。

看下面的例子:

NER之前:Martin bought 300 shares of SAP in 2016.

NER之后:[Martin]Person bought 300 shares of [SAP]Organization in [2016]Time.

关系抽取:

关系提取采用“命名实体识别(NER)”的命名实体,并识别它们之间的语义关系。这可能意味着它能够发现文本中词语之间的关联性,例如谁与谁结婚,某人在哪个公司工作等。这个问题也可以转换为分类问题,然后为每种关系类型训练机器学习模型。

情感分析:

通过情感分析,我们想要确定例如说话者或作者关于文档,互动或事件的态度(例如情绪)。因此,需要理解文本以预测潜在意图是一种自然语言处理问题。情绪主要分为积极,消极和中性两类。通过使用情感分析,我们希望根据他撰写的关于产品的评论来预测客户对产品的看法和态度。因此,情感分析广泛应用于评论,调查,文档等等

如果你对使用Python中的某些技术感兴趣,可以查看我创建的Python的自然语言工具包(NLTK)的Jupyter Notebook。你还可以查看我的博客文章,了解如何使用Keras构建神经网络,我将训练神经网络进行情感分析。

5.深度学习和NLP

深度学习和自然语言的核心是“词义”,在这里,单词用一个实数向量来表示。因此,通过向量来代表单词单词,我们可以将单词置于高维度的空间中,由向量表示的单词起到语义空间的作用。这仅仅意味着在该高维向量空间中,形近意近的单词倾向于聚集在一起。下图中,可以看到单词含义的直观展示:

图8-2-3 单词含义的直观展示

在此空间中,如果想要知道某一组聚集成类的单词的含义,可以通过使用主成分分析法(PCA),也可以使用降维法。但这些方法太简单并且会遗漏了周边的大量信息,因而产生误差。在研究的初始阶段,这些方法很好用,(如数据科学中的逻辑或线性回归)但并不是前沿技术。

我们还可以将单词的一部分当作向量,这些向量可以代表单词的含义。想象一下“undesirability”这个词。使用“形态学方法”,它涉及一个词所具有的不同部分,我们认为它由词素(单词部分)构成:“Un + desire + able + ity”。每个语素都有自己的向量。这允许我们构建一个神经网络,它可以构成一个更大的单位的意义,而更大的单位又由所有这些语素组成。

深度学习还可以通过创建句法分析器来理解句子的结构,谷歌正在使用这样的依赖解析技术,在他们的“McParseface”和“SyntaxNet”(两种语言解析器),不过更加宏大,更加复杂。

通过分析句子结构,我们开始理解句子的意义,可以从单词的含义开始,也可以从整个短语和句子开始,无论单词的意义、短语还是句子,都用向量来表示。如果想知道句子之间的关系,我们可以创建神经网络来帮助分析。

深度学习也适用于情感分析。请看这个电影评论:“这部电影不在乎是不是巧妙,也不在乎幽默与否”。传统的机器学习算法会认为这是一个积极的评论,因为“聪明”和“幽默”是积极的词汇,但是神经网络能够识别出它的真正含义。

另外,深度学习算法实现的机器翻译中,它从句子开始翻译,并生成一个向量,然后用另外一种语言生成所需要的信息。

总而言之,NLP与深度学习相结合,就是表示单词、短语的向量,以及它们的含义。

国内外自然语言处理(NLP)研究组

中国大陆地区:

腾讯人工智能实验室(Tencent AI Lab)

NLP Research, Tencent AI Lab

苏州大学自然语言处理实验室

Natural Language Processing Lab, Soochow University, China

苏州大学人类语言技术研究所

SUDA-HLT

微软亚洲研究院自然语言计算组 Natural Language Computing (NLC) Group

Natural Language Computing - Microsoft Research

头条人工智能实验室(Toutiao AI Lab)

ByteDance AI Lab

清华大学自然语言处理与社会人文计算实验室

http://nlp.csai.tsinghua.edu.cn/site2/

清华大学智能技术与系统国家重点实验室信息检索组

http://www.thuir.cn/cms/

北京大学计算语言学教育部重点实验室

http://www.klcl.pku.edu.cn/

北京大学计算机科学技术研究所语言计算与互联网挖掘研究室

http://www.icst.pku.edu.cn/lcwm/index.php?title=%E9%A6%96%E9%A1%B5

北京大学语言计算与机器学习组

Language Computing and Machine Learning Group

哈工大社会计算与信息检索研究中心

哈尔滨工业大学社会计算与信息检索研究中心 - 理解语言,认知社会

哈工大机器智能与翻译研究室

http://www.contem.org/

机器智能与翻译研究室

哈尔滨工业大学智能技术与自然语言处理实验室

http://www.insun.hit.edu.cn/home/

哈尔滨工业大学人类技术研究组

Human Language Technology (粤ICP备17042021号 http://www.miitbeian.gov.cn/)

中科院计算所自然语言处理研究组

欢迎来到中科院计算所自然语言处理组网站

中科院自动化研究所语音语言技术研究组

中文信息处理组

中国科学院软件研究所中文信息处理实验室

中科院软件所中文信息处理实验室

南京大学自然语言处理研究组

http://nlp.nju.edu.cn/homepage/

复旦大学自然语言处理研究组

http://nlp.fudan.edu.cn/

东北大学自然语言处理实验室

Natural Language Processing Laboratory at Northeastern University|东北大学自然语言处理实验室|机器翻译|语言分析|文本挖掘|NiuPlan|NiuTrans|NiuTrans Server

厦门大学智能科学与技术系自然语言处理实验室

厦门大学自然语言处理实验室

郑州大学自然语言处理实验室

http://nlp.zzu.edu.cn/

中国 香港/澳门/台湾 地区:

Huawei Noah’s Ark Lab

Noah's Ark Lab - Building An Intelligent World

CUHK Text Mining Group

CUHK Text Mining Group

Social Media Mining Group at PolyU

Welcome to Maggie's Home Page

Human Language Technology Center at Hong Kong University of Science & Technology

HKUST Human Language Technology Center

Natural Language Processing & Portuguese-Chinese Machine Translation Laboratory at University of Macau

NLP2CT - 自然語言處理與中葡機器翻譯實驗室

Natural Language Processing Lab at National Taiwan University

NTU NLPL's Homepage台大自然語言處理實驗室

新加坡 / 日本 / 以色列 / 澳大利亚:

NUS Natural Language Processing Group

NUS Natural Language Processing Group

NLP at Singapore University of Technology and Design

http://people.sutd.edu.sg/~yue_zhang/

NLP and Big Data Research Group at Singapore University of Technology and Design

http://www.statnlp.org/

Natural Language Processing (NLP) Research Group at the Nanyang Technological University

NTU-NLP

Advanced Translation Technology Laboratory at National Institute of Information and Communications Technology (NICT)

Advanced Translation Technology Laboratory

Nakayama Laboratory at University of Tokyo

Nakayama Laboratory

Natural Language Processing Lab at Bar-Ilan University

BIU Natural Language Processing Lab

The University of Melbourne NLP Group

http://hum.csse.unimelb.edu.au/nlp-group/

北美:

Natural Language Processing - Research at Google

https://research.google.com/pubs/NaturalLanguageProcessing.html

The Redmond-based Natural Language Processing group

Natural Language Processing Group - Microsoft Research

Facebook AI Research (FAIR)

https://research.fb.com

Thomas J. Watson Research Center -IBM Research

http://researchweb.watson.ibm.com/labs/watson/index.shtml

The Stanford Natural Language Processing Group

The Stanford Natural Language Processing Group

The Berkeley NLP Group

The Berkeley NLP Group

Natural Language Processing research at Columbia University

NLP at Columbia University

The Language Technologies Institute (LTI) at Carnegie Mellon University

Carnegie Mellon University - Language Technologies Institute

Graham Neubig's lab at the Language Technologies Instititute of Carnegie Mellon University

NeuLab -- Graham Neubig's Lab @ LTI/CMU

Algorithms for Computational Linguistics at City University of New York

http://acl.cs.qc.edu/

Algorithms for Computational Linguistics at Oregon State University

Liang Huang's Oregon State Homepage

RPI Blender Lab

http://nlp.cs.rpi.edu/

Blender Lab at UIUC

BLENDER Lab

UC Santa Barbara Natural Language Processing Group

UC Santa Barbara NLP Group

The Natural Language Group at USC/ISI

http://nlg.isi.edu/

Natural Language Processing @USC

Natural Language Processing @USC

Natural Language Processing Group at University of Notre Dame

Natural Language Processing at Notre Dame

Artificial Intelligence Research Group at Harvard

http://www.eecs.harvard.edu/ai/

The Harvard natural-language processing group

Harvard NLP

Computational Linguistics and Information Processing at Maryland

CLIP

Language and Speech Processing at Johns Hopkins University

About | Center for Language and Speech Processing

Human Language Technology Center of Excellence at Johns Hopkins University

Home - Human Language Technology Center of Excellence

Machine Translation Group at Johns Hopkins University

Home Page - JHU MT Wiki

Computational Psycholinguistics Lab at Johns Hopkins University

http://jhpsycholing.webfactional.com/

Machine Translation Research at Rochester

Machine Translation Research

NLP @ University of Illinois at Urbana-Champaign

http://nlp.cs.illinois.edu/

UIC Natural Language Processing Laboratory

UIC Natural Language Processing Laboratory

Human Language Technology Research Institute at The University of Texas at Dallas

Human Language Technology Research Institute

Natural Language Processing Group at MIT CSAIL

MIT NLP Group

Human Language Technology Research Institute at University of Texas at Dallas

Human Language Technology Research Institute

Natural Language Processing Group at Texas A&M University

Texas A&M NLP - Welcome

The Natural Language Processing Group at Northeastern University

Natural Language Processing Research Group

Cornell NLP group

Log In - Dashboard

Natural Language Processing group at University Of Washington

Natural Language Processing

Natural Language Processing Research Group at University of Utah

Natural Language Processing Group: UofU

Natural Language Processing and Information Retrieval group at University of Pittsburgh

http://www.isp.pitt.edu/research/nlp-info-retrieval-group

Brown Laboratory for Linguistic Information Processing (BLLIP)

Brown Laboratory for Linguistic Information Processing (BLLIP)

Natural Language Processing (NLP) group at University of British Columbia

Natural Language Processing (NLP)| CS

The Language And Interaction Research (LAIR) group at Michigan State University

Language and Interaction Resesarch [LAIR]

The Machine Learning for Language (ML²) group at New York University

Machine Learning for Language at NYU

欧洲:

Natural Language and Information Processing Research Group at University of Cambridge

Computer Laboratory

The Computational Linguistics Group at Oxford University

Computational Linguistics Group

Human Language Technology and Pattern Recognition Group at the RWTH Aachen

https://www-i6.informatik.rwth-aachen.de/

The Natural Language Processing Group at the University of Edinburgh (EdinburghNLP)

about

Statistical Machine Translation Group at the University of Edinburgh

SMT Group Edinburgh - Public/HomePage

Natural Language Processing Research Group at The University of Sheffield

Natural Language Processing

Speech Research Group at University of Cambridge

Machine Intelligence Laboratory

Statistical Machine Translation Group at the University of Cambridge

WebHome < Main < Foswiki

Computational Linguistics group at Uppsala University

Computational linguistics - Department of Linguistics and Philology - Uppsala University, Sweden

The Center for Information and Language Processing at University of Munich

The Center for Information and Language Processing (CIS)

National Centre for Language Technology at Dublin City University

National Centre for Language Technology

The National Centre for Text Mining (NaCTeM) at University of Manchester

National Centre for Text Mining

Institute of Computational Linguistics of the University of Zurich

Institute of Computational Linguistics

The Information and Language Processing Systems group at the University of Amsterdam

http://ilps.science.uva.nl/

Institute of Formal and Applied Linguistics at Charles University

Home page | ÚFAL

DFKI Language Technology Lab

Language Technology

IXA in University of the Basque Country

http://ixa.eus/

Statistical Natural Language Processing Group at the Institute for Computational Linguistics at Heidelberg University

Statistical Natural Language Processing Group

NLP Research at the University of Helsinki

Language Technology

参考资料

1.  李长云,王志兵,智能感知技术及在电气工程中的应用,电子科技大学出版社,2017.05,第163页

2.  郑树泉主编,工业智能技术与应用,上海科学技术出版社,2019.01,第111页

3.  高俊峰,董玥著,网络舆情场中信息受众的观点测度,中国科学技术出版社,2018.11,第29页

4.  陈敏,认知计算导论,华中科技大学出版社,2017.05,第42页

5.  李德毅,于剑,中国人工智能学会,中国科协新一代信息技术系列丛书 人工智能导论,中国科学技术出版社,2018.08,第168页

6.  赵京胜,宋梦雪,高祥.自然语言处理发展及应用综述[J].信息技术与信息化,2019(07):142-145.  .中国知网[引用日期2020-12-12]

7.  赵园丁.浅谈人工智能时代背景下自然语言处理技术的发展应用[J].办公自动化,2019,24(10):63-64.  .中国知网[引用日期2020-12-12]

8.  李雪晴,王石,王朱君,朱俊武.自然语言生成综述.计算机应用.  .中国知网[引用日期2020-12-12]

9.  关于自然语言处理技术的分析与研究  .中国知网[引用日期2020-12-12]

10.  自然语言处理与信息检索系统分析  .中国知网[引用日期2020-12-12]


[8-1]


上一章          下一章

相关内容     系统首页