第6章 语义分析:意义很重要

语义分析(或者叫意义生成)是NLP中的任务之一。它被定义为确定字符或单词序列意义的过程,其可用于执行语义消歧任务。

本章将包含以下主题:

  • NER。
  • 使用HMM的NER系统。
  • 使用机器学习工具包训练NER。
  • 使用词性标注执行NER。
  • 使用Wordnet生成同义词集id。
  • 使用Wordnet进行词义消歧。

NLP指的是在自然语言上执行计算。语义分析是处理自然语言时需要执行的步骤之一。在分析一个给定的句子时,如果已经构建了句子的句法结构,那么这个句子的语义分析就算完成了。语义解释指的是将意义分配给句子,上下文解释指的是将逻辑形式分配给知识表示。语义分析的原语或基本单位被称为意义或语义(meaning或sense)。ELIZA是处理语义的工具之一,是由Joseph Weizenbaum在六十年代开发出来的,它使用替换和模式匹配技术来分析句子并且为给定的输入提供输出。MARGIE是由Robert Schank在七十年代开发出来的,它可以使用11种原语来表示所有的英语动词。MARGIE可以解释一个句子的语义并借助原语来表示其语义。MARGIE之后进一步让位于脚本的概念,脚本应用机制(Script Applier Mechanism,SAM)就是基于MARGIE开发出来的,它可以翻译来自不同语言的句子,例如英语、汉语、俄语、荷兰语和西班牙语等。为了处理文本数据,使用了一个Python库也就是TextBlob库。TextBlob提供了用于执行NLP任务的API,例如词性标注、名词短语提取、文本分类、机器翻译、情感分析等。

语义分析可用于查询数据库和检索信息。另一个Python库Gensim可用于执行文档索引、主题建模和相似性检索。Polyglot是一个支持多语言应用的NLP工具,它提供了40种语言的命名实体识别、165种语言的分词、196种语言的语言检测、136种语言的情感分析、16种语言的词性标注、135种语言的形态分析、137种语言的嵌入以及69种语言的音译。MontyLingua是一个用于执行有关英语文本语义解释的NLP工具,它可以从英文句子中提取诸如动词、名词、形容词、日期、短语等语义信息。 ...

Get 精通Python自然语言处理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.