赞
踩
在介绍大语言模型之前,先把自然语言处理中遗漏的结构化预测补充一下,因为大模型实打实地最先干掉的行业便是自然语言处理,虽然网传各个最容易被大模型替代的行业里从来没有自然语言处理,但现实是有了大模型后,之前的所有自然语言处理技术都显得不那么有价值了。
当然,大模型本质上还是处理自然语言,但其实最大的变化便是忘掉之前的技术,一切像数据和算力看齐。
老兵不死,只是逐渐凋零。
词法分析(Lexical Analysis)是对输入文本进行预处理和基础处理的关键步骤。其主要任务是将文本分割成更小的单元(通常是词素或token),并对这些单元进行进一步处理以提取有用的信息。
以下是NLP中词法分析的主要任务和功能:
分词(Tokenization)是将连续的文本字符串拆分成独立的词素(Token)的过程。分词策略在处理各种自然语言时有所不同,这是由于各个语言的词汇结构和语法规则存在显著差异。
英文分词相对来说比较直接,因为英文单词通常由空格和标点符号分隔。大多数情况下,英文句子中的空格、标点符号等自然分隔符可以有效地分隔词汇。还可以依托自然分隔符和基本规则,如撇号和连字符等特别符号处理。
中文分词相对复杂,因为汉字连续书写,不像英文单词那样有明显的分隔符(如空格)。这使得中文分词成为NLP领域中的一个重要且具有挑战性的任务。中文句子中的词汇之间没有明确的分隔符。同一个字符序列可能有不同的词汇组合方式,导致多种解析结果。处理新词、专有名词和更新快的词汇(如网络用语)。
中文分词的方法:
def forward_max_match(text, dictionary):
max_len = max(len(word) for word in dictionary)
i = 0
tokens = []
while i < len(text):
match = None
for j in range(max_len, 0, -1):
if i + j <= len(text) and text[i:i+j] in dictionary:
match = text[i:i+j]
tokens.append(match)
i += j
break
if not match:
tokens.append(text[i])
i += 1
return tokens
dictionary = {"我", "爱", "北京", "天安门"}
text = "我爱北京天安门"
tokens = forward_max_match(text, dictionary)
print(tokens)
# Output: ['我', '爱', '北京', '天安门']
词性标注是自然语言处理(NLP)中的一种技术,用于为给定文本中的每一个单词分配其适当的词性标签。常见的词性标签包括名词(Noun, N)、动词(Verb, V)、形容词(Adjective, Adj)、副词(Adverb, Adv)等等。这种标注在各种语言处理任务中非常重要,包括语法解析、信息抽取、机器翻译等。
词性标注方法:
常见的标签集有以下几种:
假设我们有一句话:“The quick brown fox jumps over the lazy dog.”,我们需要对其进行词性标注。下面是一个可能的标注结果:
词性标注在自然语言处理中的重要性在于:
句法分析(Syntactic Parsing)是自然语言处理中的重要任务,旨在识别和解释输入文本的语法结构。句法分析的目标是生成解析树(Parse Tree),以显示句子各成分之间的关系,以及句子的整体语法结构。解析树包括成分关系(Constituency Parsing)和依存关系(Dependency Parsing)两种主要类型。
成分句法分析(Constituency Parsing),又称为短语结构分析,是自然语言处理中一个关键的技术任务。它的目标是将输入句子解析成一个语法树(Parse Tree),该树描述了句子如何根据某种句法规则结构化。
成分句法分析的目标是构建一个树状结构,用以表示句子的层级关系和组成成分。树的每一个节点表示一个句法成分,如短语、词组或词的类型(如名词短语、动词短语等)。
常见的成分标签:
主要方法:
成分句法分析在多个领域有广泛应用:
依存句法分析(Dependency Parsing)是一种句法分析方法,旨在识别句子中词语之间的语法依存关系。每个词语都有一个或多个依赖词(即其修饰词),这些依存关系能揭示句子的结构和词语在句子中的作用。
两个词语之间的一种语法关系,通常表示为一个头词(Head)和一个依存词(Dependent),这是一种依存关系(Dependency Relation)
一个有根的、有向、无环图,每个节点代表句中的一个词,边表示依存关系,这样就形成了依存树(Dependency Tree)。
句子:“The quick brown fox jumps over the lazy dog.”
依存树可能如下:
jumps
├── fox
│ ├── The
│ ├── quick
│ └── brown
└── over
└── dog
├── the
└── lazy
在这个依存树中,“jumps”是主谓关系的中心词,“fox”是主语,“dog”是宾语。
依存关系可以细分为不同类型,如:
这些关系常用统一的标签表示,称为依存标签(Dependency Labels),例如:nsubj(名词主语)、dobj(直接宾语)、amod(形容词修饰)。
依存句法分析的方法:
序列标注(Sequence Labeling)是一种自然语言处理任务,目标是给序列中的每个元素分配一个标签。常见的应用包括词性标注(POS tagging)、命名实体识别(NER)、分块(Chunking)、语义角色标注(Semantic Role Labeling)、句法解析(Syntactic Parsing)等。
在序列标注任务中,每个标签不仅依赖于当前元素,还可能依赖于上下文中的其他元素。这使得序列标注不同于独立的单元素标注任务。因此,合理的建模方法通常需要考虑元素之间的依赖关系。常用方法包括:隐马尔可夫模型(HMM),条件随机场(CRF)。
使用分类器进行标注(Tagging with Classifiers)适用于较为独立的标注任务,在这种方法中,我们把标注任务视为分类问题,即为每个元素分配一个类别。我们可以使用各种分类器,如支持向量机(SVM)、随机森林(Random Forests)和神经网络等。
使用分类器进行标注的主要步骤:
使用分类器进行标注的优点是比较简单,容易实现,可以利用很多不同的机器学习算法。缺点是如果不考虑上下文信息,标注效果可能会受限。独立于上下文的分类器可能无法捕捉词与词之间的依赖关系。
语义分析(Semantic Analysis)旨在理解和解释语言背后的意义。语义分析不仅仅关注词语的表面形式,而是试图理解词语和句子在特定语境中的真实含义。
大语言模型直接建模语义,利用大量的文本数据,通过自监督学习来捕捉复杂的语言规律和语义信息。就像我们母语学习类似,是从实际生活中学习语义,并不需要先进行词法分析或句法分析。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。