gpt4 book ai didi

java - 使用 NLP 转换性别

转载 作者:行者123 更新时间:2023-11-30 04:43:05 27 4
gpt4 key购买 nike

基本上,我正在编写一个 Java 模块,该模块应该接受英文文本并切换代词的性别。例如,如果你给它“她把盒子放在 table 上”,它会给你返回“他把盒子放在 table 上”。如果你给它“他的脚受伤了”,它会给你“她的脚受伤了”。

这非常简单,除了“hers”这个词。有时他=她,有时他=她。

我一直在研究 NLP,对此我几乎一无所知,我尝试了 OpenNLP,但它失败了(由于许可问题,我无法使用斯坦福 NLP)。 POS 标记器和 Chunker 会与她/她的混淆,甚至解析器也会混淆。例如:

盒子是他的。

(TOP (S (NP (DT The) (NN box)) (VP (VBD was) (NP (PRP$ his))) (. .)))

盒子是她的。

(TOP (S (NP (DT The) (NN box)) (VP (VBD was) (ADJP (JJ hers))) (. .)))

这个盒子是他的盒子。

(TOP (S (NP (DT The) (NN box)) (VP (VBD was) (NP (PRP$ his) (NN box))) (. .)))

这个盒子是她的盒子。

(TOP (S (NP (DT The) (NN box)) (VP (VBD was) (NP (PRP$ her) (NN box))) (. .)))

它正确地将“hers”识别为形容词短语,但是当以完全相同的方式在谓语中使用“his”时,它错误地将其识别为所有格代词,就好像它在第三个中修饰某个名词一样和第四个例子..

这只是训练集的问题吗?是否有可能创建我自己的训练集来更好地做到这一点,基本上是一个只有大量他/她的句子的训练集?

如果你能告诉我是否有任何方法可以使用 NLP 来确定代词的先行词,那就加分了。例如:

"Wanda gave a watch to a girl named Lucy.  She loved it."

我的猜测是这几乎是不可能的,因为有时这对人类来说甚至很难。

最佳答案

从示例来看,每当 his 作为节点的唯一子节点出现时,您都可以尝试将 his 替换为 hers 而不是 her,据我对英语(不是母语人士)的了解,这对应于“hers”、“mine”等单词的用法。

# NP with one child
(NP (PRP$ his)) ==> (ADJP (JJ hers))

但是

# NP with two children, "his" and "box"
(NP (PRP$ his) (NN box)) ==> (NP (PRP$ her) (NN box))

(我已经很久没有对语法树做过任何事情了,但在第一个示例中,NP 标签似乎是解析器的一个错误。)

Bonus points if you can tell me whether there's any way to use NLP to determine the antecedent of a pronoun.

这称为代词解析,或更一般地说是回指解析,并且存在大量关于此问题的文献。此任务的基线算法称为 Hobbs 算法,在 SLP 中的某处进行了描述。 ,或在this question中.

关于java - 使用 NLP 转换性别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777579/

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