自然语言处理:让计算机理解语言
约 7 分钟
让计算机理解人类语言,是人工智能最难的问题之一。这个领域叫自然语言处理(NLP)。
NLP 要解决什么问题:
分词:中文没有空格,「我喜欢读书」要切成「我/喜欢/读书」。看似简单,但「南京市长江大桥」可以切成「南京市/长江大桥」或「南京/市长/江大桥」
词性标注:标注每个词是名词、动词还是形容词。「花」可以是名词(一朵花)也可以是动词(花钱)
句法分析:分析句子的结构,谁是主语谁是宾语。「我看见他拿着书」--谁拿着书?我还是他?
语义理解:理解句子什么意思。「你能把盐递给我吗」不是问你有没有能力,是请求
情感分析:判断文本是正面还是负面。「这部电影太棒了」是正面,「太棒了又没看」是讽刺
命名实体识别:找出文本中的人名、地名、机构名
问答系统:回答用户的问题
文本生成:写文章、写代码、写诗
NLP 的难点:
歧义:同一句话有多种理解。「我要上课了」--我是学生要去听课?还是老师要去讲课?
语境依赖:「他」指的是谁?要看上文。「这个主意真不错」--真不错还是反语?要看语气
常识缺失:人知道「下雨要打伞」,机器不知道。机器没有生活经验
语言的创造性:人能造新句子、新词、双关语,机器难以应对
NLP 的方法演变:
- 规则方法(1960s-1980s):手写规则。能处理简单句子,但规则写不完
- 统计方法(1990s-2010s):用统计模型自动学习。比规则好,但特征要人工设计
- 深度学习(2010s-至今):神经网络自动学习特征。Transformer 和大语言模型是最新进展
练习:对 Siri 或小爱同学说一句有歧义的话,看它怎么理解。它的反应暴露了 NLP 的难点。
小纸条
NLP 要解决哪些问题?有哪些难点?
登录 后可看答案