CS224n笔记(一)

116 阅读2分钟

NLP Levels

这幅图是人们对于语言层次的认知等级。

  1. 输入可以是语音,然后大脑进行语音音位分析;输入也可以是文本,通过图像识别或者分词解析。
  2. 接着我们会得到复杂的词汇含义比如incomprehensible,含有前缀in- 和后缀-able,这就是第二层的单词结构分析
  3. 第三层就是对句子结构,句法分析。找出句子里的动词,主语等结构
  4. 第四层,我们做语义理解,得出句子的含义
  5. 对于一个句子的理解还需要上下文的背景知识,这就是最后一层语篇处理

nlp的应用

  • 拼写检查,自动补全 (初级语义理解任务)
  • 搜索引擎的联想功能 (初级语义理解任务)
  • 关键信息提取 比如价格,地点,爱好(中级语义理解任务)
  • 情感分析(中级语义理解任务)
  • 机器翻译(高级语义理解任务)
  • 对话系统(高级语义理解任务)

人类语言一般是某个人想要传递某个信息给别人,具有目的性,同时即使小孩也能熟练的掌握这种复杂的系统。 特点:离散的,可以符号化,分类的信号系统

nlp难的原因

  1. 表达形式复杂,比起编程语言更加灵活
  2. 人类语言经常有歧义
  3. 人类语言依赖于真实世界,常识。人类语言也会省略很多不必要的话,所以更有效率

词向量

神经网络进行nlp的基础是,单词向量。将单词投影至高维的空间,我们会发现一些有趣的性质:含义相同的单词向量在空间上比较接近、向量空间里的方向会透露出成分和意义的信息。


每一个单词可以进行解析,分成词干、前缀、后缀等更小的单元,由此构造神经网络


为了进一步了解句子结构,找出句法停顿处,句法依存分析,我们同样可以构造神经网络如下:


接着为了理解句子含义,我们仍然可以构造神经网络:

图中上半部分是传统的算法,下半部分是神经网络算法