
SceneGraphParser数据词典揭秘1700短语动词与场景名词如何决定解析准确性【免费下载链接】SceneGraphParserA python toolkit for parsing captions (in natural language) into scene graphs (as symbolic representations).项目地址: https://gitcode.com/gh_mirrors/sc/SceneGraphParserSceneGraphParser包名sng_parser是一款纯 Python 编写的场景图解析工具能把一句自然语言解析成实体 关系的场景图scene graph是关系抽取与视觉-语言理解任务中的常用组件。这篇文章带你完整拆解项目内置的 3 本数据词典看看 1700 短语动词与场景名词是如何决定场景图解析准确性的。一分钟上手场景图解析把句子变成什么SceneGraphParser 基于 spaCy 的依存分析解析分三步找出名词块作为实体节点、确定动词的主语、再判定实体间的关系边。 import sng_parser graph sng_parser.parse(A woman is playing the piano in the room.) sng_parser.tprint(graph) # 表格化查看结果上句会得到 3 个实体woman / piano / room和 2 条关系woman → playing → pianowoman → in → room。而决定这些关系是否对的关键藏在sng_parser/_data/目录下的三个文本词典里。数据词典一览3 个文件的分工 ️词典文件条目数作用sng_parser/_data/phrasal-verbs.txt1771识别动词 介词短语组合sng_parser/_data/scene-nouns.txt401给地点类实体打上scene类型标记sng_parser/_data/phrasal-preps.txt10合并多词介词短语三本词典的读取与查询逻辑集中在 sng_parser/database.py 中对外暴露is_phrasal_verb()、is_scene_noun()、is_phrasal_prep()三个函数解析器在sng_parser/backends/spacy_parser.py的三步流程中按需调用。短语动词词典1771 个词条如何锁定动词 介词 看这句A woman is playing with the piano in the room.介词with其实是动词play的一部分正确关系应是playing with。如果解析器无法识别这一点关系就会被错误拆分或丢失。解析器在 sng_parser/backends/spacy_parser.py 中会把动词词元与紧随其后的介词拼起来如play with调用database.is_phrasal_verb()查表一旦命中词典就直接把介词宾语与主语相连生成完整的playing with关系。phrasal-verbs.txt收录了从ask for到zoom out的 1771 个常见短语动词是三个词典中体量最大、对解析准确性贡献最直接的一本。场景名词表401 个地点名词如何标记场景实体 ️scene-nouns.txt收录了airport terminal、bamboo forest、zen garden这类地点与场景名词共 401 条。解析时每个实体都会经过database.is_scene_noun()检查支持room这类单字词和airport terminal这类多字词命中则实体类型标记为scene否则为unknown。这个标记看似不起眼却是下游任务的关键钩子——本项目正是为 CVPR 2019 的视觉-语义嵌入研究而生scene标记能让模型直接定位图像中与场景相关的实体。介词短语词典10 个多词介词的合并处理以A woman in front of a piano为例。若不做特殊处理front会被误认为一个独立名词实体同时in、of会把关系割裂成残缺片段。解析器用database.is_phrasal_prep()判断整段词组是否为多词介词命中后in front of被合并为一条完整关系并用假名词标记fake noun marks机制把front从实体列表中剔除。这 10 条收录了in spite of、on account of、on top of等高频介词短语。词典数据从何而来两个抓取脚本揭秘 tools/目录完整保留了词典的生产管线tools/get-phrasal-verbs.sh按 A–Z 26 个字母循环抓取某英语网站的分页短语动词列表再由tools/parse-eos.py过滤清洗后写入phrasal-verbs.txttools/get-scene-nouns.sh拉取 Places365 视觉数据集的标签清单tools/process-scene-nouns.py把下划线转为空格并合并room、office、lab等 35 个补充词最终生成 401 条场景名词。好消息是三本词典都是一行一条的纯文本文件。如果你想新增某个常被漏掉的短语动词或场景名词直接编辑对应 txt 文件即可无需改动任何代码。动手验证3 句话看词典生效 克隆仓库并安装git clone https://gitcode.com/gh_mirrors/sc/SceneGraphParser pip install SceneGraphParser python -m spacy download en依次解析下面三句就能分别看到三本词典的效果A woman is playing with the piano in the room.→ 出现完整的playing with关系短语动词词典生效A piano is in the airport terminal.→airport terminal实体的type字段为scene场景名词表生效A woman in front of a piano.→ 只有一条in front of关系且front不再是实体介词短语词典生效。示例句子可直接参考example/demo.py的运行方式。写在最后SceneGraphParser 的解析准确性不来自某个大模型而来自这三本朴素却精心维护的词典1771 个短语动词、401 个场景名词、10 个多词介词。它们以规则查表的方式介入依存树分析是场景图解析准确性的关键一环。如果你在实际使用中发现某句话解析不准第一反应不妨是查一查词典里缺不缺这条词条——补一行文本可能比改十行代码更有效。【免费下载链接】SceneGraphParserA python toolkit for parsing captions (in natural language) into scene graphs (as symbolic representations).项目地址: https://gitcode.com/gh_mirrors/sc/SceneGraphParser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考