语言思辨前沿

自然语言处理:让计算机理解语言

7 分钟

让计算机理解人类语言,是人工智能最难的问题之一。这个领域叫自然语言处理(NLP)。

NLP 要解决什么问题

  1. 分词:中文没有空格,「我喜欢读书」要切成「我/喜欢/读书」。看似简单,但「南京市长江大桥」可以切成「南京市/长江大桥」或「南京/市长/江大桥」

  2. 词性标注:标注每个词是名词、动词还是形容词。「花」可以是名词(一朵花)也可以是动词(花钱)

  3. 句法分析:分析句子的结构,谁是主语谁是宾语。「我看见他拿着书」--谁拿着书?我还是他?

  4. 语义理解:理解句子什么意思。「你能把盐递给我吗」不是问你有没有能力,是请求

  5. 情感分析:判断文本是正面还是负面。「这部电影太棒了」是正面,「太棒了又没看」是讽刺

  6. 命名实体识别:找出文本中的人名、地名、机构名

  7. 问答系统:回答用户的问题

  8. 文本生成:写文章、写代码、写诗

NLP 的难点

  • 歧义:同一句话有多种理解。「我要上课了」--我是学生要去听课?还是老师要去讲课?

  • 语境依赖:「他」指的是谁?要看上文。「这个主意真不错」--真不错还是反语?要看语气

  • 常识缺失:人知道「下雨要打伞」,机器不知道。机器没有生活经验

  • 语言的创造性:人能造新句子、新词、双关语,机器难以应对

NLP 的方法演变

  1. 规则方法(1960s-1980s):手写规则。能处理简单句子,但规则写不完
  2. 统计方法(1990s-2010s):用统计模型自动学习。比规则好,但特征要人工设计
  3. 深度学习(2010s-至今):神经网络自动学习特征。Transformer 和大语言模型是最新进展

练习:对 Siri 或小爱同学说一句有歧义的话,看它怎么理解。它的反应暴露了 NLP 的难点。

小纸条

NLP 要解决哪些问题?有哪些难点?

登录 后可看答案