自然语言处理(Natural Language Processing,NLP)就是用计算机来处理、理解以及运用人类语言(如中文、英文等),它属于人工智能的一个分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学(Computational Linguistics,CL)。
1.NLP任务
自然语言处理(NLP)的四大任务:
- 情感分析
- 词性标注(POS Tagging)
- 命名实体识别(NER:Name Entity Recognition)
- 句子相似度(Semantic similarity):seq2seq,chatbot聊天机器人。
word2vec:词向量。方式:RNN(LSTM,双向LSTM,transformer,Bert)
sen2vec:句子向量
2.NLP难点
自然语言处理的困难可以罗列出来很多,不过关键在于消除歧义问题。
正确的消歧需要大量的知识,包括语言学知识(如词法、句法、语义、上下文等)和世界知识(与语言无关)。
单词定界问题(分词)是属于词法层面的消歧任务。正确的单词切分取决于对文本语义的正确理解,而单词切分又是理解语言的最初的一道工序。这样的一个“鸡生蛋、蛋生鸡”的问题自然成了(中文)自然语言处理的第一条拦路虎。
消除歧义所需要的知识(上下文知识、背景知识等)在获取、表达以及运用上存在困难,由于语言处理的复杂性,合适的语言处理方法和模型难以设计。
3.NLP思路
人们主要通过两种思路来进行自然语言处理:
- 基于规则的理性主义。
理性主义认为,人类语言主要是由语言规则来产生和描述的,因此只要能够用适当的形式将人类语言规则表示出来,就能够理解人类语言,并实现语言之间的翻译等各种自然语言处理任务。
- 基于统计的经验主义
经验主义认为,从语言数据中获取语言统计知识,有效建立语言的统计模型,只要有足够多的用于统计的语言数据,就能够理解人类语言。