我需要在 RDF 文件中为给定主题找到“主要类型”。
当我在http://www.freebase.com上的搜索框中输入问题时,自动完成器会使用此“主要类型”给我主题名称。
例如:
- 当我写“Barack Oba”时,我可以看到“Barack Obama -美国总统”。主题“巴拉克奥巴马”有多种类型,但是如何在 RDF 文件中找到专业是“美国总统”?
- 类似“伍迪艾伦”=>“编剧”
- "EOS 400D" => "数码相机"
如何在 RDF 表示中找到这个“主要类型”?
谢谢您的帮助。
我需要在 RDF 文件中为给定主题找到“主要类型”。
当我在http://www.freebase.com上的搜索框中输入问题时,自动完成器会使用此“主要类型”给我主题名称。
例如:
如何在 RDF 表示中找到这个“主要类型”?
谢谢您的帮助。
RDF 转储中尚未包含值得注意的类型。谷歌已经表示他们会,但没有提供时间表。
大概您对“主要类型”的定义相当松散,即您不太担心确切的上下文匹配并且只想要“最流行”的选项?
假设您可以编写和运行 SPARQL 查询,那么执行此操作的最佳方法可能是运行一个查询,该查询为要自动完成的文本找到文本匹配,并找到与之关联的最常用术语,例如
SELECT ?term (COUNT(*) AS ?triples)
{
?term ?property ?value .
FILTER(REGEX(?value, "Barack Oba", "i"))
} GROUP BY ?term ORDER BY DESC(?triples) LIMIT 1
请注意,使用REGEX
here 会严重影响性能,取决于底层 SPARQL 实现,可能有更有效的方法来执行这种文本搜索查询。