语义分析(或者叫意义生成)是 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 工具,它可以从英文句子中提取诸如动词、名词、形容词、日期、短语等语义信息。
可以使用逻辑学来正式地表示句子。命题逻辑中的基本表达式或句子可以用诸如 P、Q、 R 等命题符号来表示。命题逻辑中的复杂表达式可以用布尔运算符来表示。例如,为了表示句子 If it is raining, I’ll wear a raincoat,可以使用命题逻辑:
P: It is raining.
• Q: I’ll wear raincoat.
• P→Q: If it is raining, I’ll wear a raincoat.
考虑下面 NLTK 中用于展示所使用的运算符的代码:
>>> import nltk
>>> nltk.boolean_ops()
negation -
conjunction &
disjunction |
implication ->
equivalence <->
来源:CSDN
作者:椒椒。
链接:https://blog.csdn.net/qq_38978225/article/details/103862448