gpt4 book ai didi

python - 自然语言到二进制事实

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:24 25 4
gpt4 key购买 nike

我想获取一组英语句子并将它们转换为一组关系。例如

“飞行员驾驶飞机。”将映射到类似以下关系:

flies(pilot, airplane)

“鲍勃是爱丽丝和道格的父亲。”将映射到

father(Bob, Alice)
father(Bob, Doug)

我知道我以前见过一个Python库可以做这样的事情,但尽管我进行了所有搜索,我还是找不到它。我以前从未做过 NLP 编程,所以我可能用错了术语。抱歉。

更新:这不是生成 Prolog 的努力,而是生成有关话语宇宙的二进制(和其他)事实。然后可以将这些事实插入到对象角色模型中,并帮助生成数据库模式。上面的“flies”事实只是为了说明,对输出的语法没有要求。它只需是常规输出即可。

用语言学术语来说,我想我希望看到一个动词短语和两个名词短语来捕获二元事实。这些结构的方式并不像能够以自动方式识别结构那么重要。

最佳答案

您似乎正在将自然语言转换为 Prolog(XSB?)。一般来说,没有简单(甚至相当困难)的方法来自动化此过程。然而,对于像您问题中的简单句子,您需要使用类型依赖解析。这将为您提供主语、宾语和动词。一旦有了这些,您就可以编写一个简单的脚本来获取元组。

Python 的自然语言工具包 (NLTK) 不支持类型依赖。 (参见 this answer

斯坦福大学的解析器将帮助您(正如 Prateek 在评论中提到的那样)。请注意,您需要使用类型化依赖项。

您的例句“飞行员驾驶飞机。”将产生

det(pilot-2, A-1)
nsubj(flies-3, pilot-2)
root(ROOT-0, flies-3)
det(airplane-5, an-4)
dobj(flies-3, airplane-5)

root 是谓语(主要动词),nsubj 表示主语,dobj 表示直接宾语。

希望这有帮助:-)

关于python - 自然语言到二进制事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19861816/

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