gpt4 book ai didi

nlp - 从句子中提取关系概念

转载 作者:行者123 更新时间:2023-12-04 15:57:46 24 4
gpt4 key购买 nike

是否有当前模型或我如何训练一个模型,该模型需要一个涉及两个主题的句子,例如:

[Meiosis] is a type of [cell division]...



并决定一个是另一个的 child 还是 parent 的概念?在这种情况下,细胞 split 是减数 split 的父本。

最佳答案

主题是否已经确定,即您是否事先知道每个句子的哪些单词或单词序列代表主题?如果你这样做,我认为你正在寻找的是关系提取。

无监督方法

一种简单的无监督方法是使用词性标签寻找模式,例如:

首先,您标记并获取每个句子的 PoS 标签:

sentence = "Meiosis is a type of cell division."
tokens = nltk.word_tokenize("Meiosis is a type of cell division.")
tokens
['Meiosis', 'is', 'a', 'type', 'of', 'cell', 'division', '.']

token_pos = nltk.pos_tag(tokens)
token_pos
[('Meiosis', 'NN'), ('is', 'VBZ'), ('a', 'DT'), ('type', 'NN'), ('of', 'IN'),
('cell', 'NN'), ('division', 'NN'), ('.', '.')]

然后构建一个解析器,根据 PoS 标签解析特定模式,这是一种调解两个主题/实体/名词之间关系的模式:
verb = "<VB|VBD|VBG|VBN|VBP|VBZ>*<RB|RBR|RBS>*"
word = "<NN|NNS|NNP|NNPS|JJ|JJR|JJS|RB|WP>"
preposition = "<IN>"
rel_pattern = "({}|{}{}|{}{}*{})+ ".format(verb, verb, preposition, verb, word, preposition)
grammar_long = '''REL_PHRASE: {%s}''' % rel_pattern
reverb_pattern = nltk.RegexpParser(grammar_long)

注意:此模式基于本文: http://www.aclweb.org/anthology/D11-1142

然后,您可以将解析器应用于所有 token /PoS 标签,除了属于主题/实体的 token :
reverb_pattern.parse(token_pos[1:5])
Tree('S', [Tree('REL_PHRASE', [('is', 'VBZ')]), ('a', 'DT'), ('type', 'NN'), ('of', 'IN')])

如果解析器输出 REL_PHRASE,则两个主题之间存在关系。然后,您需要分析所有这些模式并决定哪些模式代表 parent-of关系。例如,实现这一目标的一种方法是将它们聚类。

监督进场

如果您的句子已经用主题/实体和关系类型标记,即监督场景,那么您可以构建一个模型,其中特征可以是两个主题/实体之间的单词以及标签的关系类型。
sent: "[Meiosis] is a type of [cell division.]"
label: parent of

您可以构建 is a type of 的向量表示,并训练分类器来预测标签 parent of .为此,您将需要许多示例,这还取决于您拥有多少不同的类/标签。

关于nlp - 从句子中提取关系概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54966341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com