gpt4 book ai didi

java - 如何获取句子中名词短语之间的关系?

转载 作者:行者123 更新时间:2023-12-01 15:22:59 24 4
gpt4 key购买 nike

我有这种模式来获取句子中名词短语之间的因果关系:

<NP I> * have * effect/impact on/in <NP II>

NP是名词短语。

如果我有一句话:

Technology can have negative impact on social interactions

然后根据上述模式,NP I技术匹配,NP II社交互动匹配

问题:获得 NP I 和 NP II 的合适算法是什么?

谢谢

最佳答案

正则表达式 (RegEx) 在这种情况下非常有用。以下正则表达式与您的字符串格式匹配,并允许您分析输入的不同变量。

([\\w\\s]*?) (\\w*?) have (\\w*?) (effect|impact) (on|in) ([\\w\\s]*?)(\\.)

通过运行以下程序,您可以看到正则表达式匹配器组是如何工作的,组 1 是 NP 1,组 6 是 NP 2。

public class Regex {

public static void main(String[] args) {
Pattern p = Pattern.compile("([\\w\\s]*?) (\\w*?) have (\\w*?) (effect|impact) (on|in) ([\\w\\s]*?)(\\.)");
String s = "Greenhouse gases can have negative impact on global warming.";
Matcher m = p.matcher(s);
if (m.find()) {
for (int i = 0; i < m.groupCount(); i++) {
System.out.println("Group " + i + ": " + m.group(i));
}
}
}
}

在上面的示例中,分析了字符串“温室气体可能对全局变暖产生负面影响。”。以下是程序的输出。

Group 0: Greenhouse gases can have negative impact on global warming.
Group 1: Greenhouse gases
Group 2: can
Group 3: negative
Group 4: impact
Group 5: on
Group 6: global warming

关于java - 如何获取句子中名词短语之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10596555/

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