如何使用DBPedia和SPARQL为关键词分配合适的科学类别



我有一些关键字,如emotion perception abilitystudents’ motivationself-efficacy。目标是将这些关键词映射到相应的心理学类别。在这种情况下,我事先知道答案是教育心理学,但我想使用DBPedia本体论得到同样的答案。

使用以下查询,我能够提取心理学的不同分支和相应的摘要:

SELECT DISTINCT ?subject ?abstract
WHERE {
?concept rdfs:label "Branches of psychology"@en .
?concept ^dct:subject ?subject .
?subject dbo:abstract ?abstract .
} 
LIMIT 100

现在我想添加一些OPTIONAL子句,将我的关键字(使用OR)与摘要中的术语(dbo:abstract)进行比较。使用SPARQL可以做到这一点吗?或者我应该使用SPARQL来获得摘要,然后使用Java或Python进行所有进一步的文本处理吗?

此外,我们高度赞赏其他一些可能对实现目标有用的方法的想法。

您可以使用sparql以文本形式检索数据,但应该使用文本数据分析技术或文本挖掘来决定文本是否与查询匹配

这是一门完整的科学,但幸运的是,存在许多用于许多语言(包括Java和Python)的库,以便实现相关的算法。以下是维基百科上的软件列表。NLTK是众所周知的工作,并有一个Python绑定。

在你的情况下,我想了很多方法,但我远非专家,所以我的想法可能是错误的:

创建每个所需类别(教育心理学,…)的摘要语料库,对于给定的摘要a,将a与每个类别C的每个摘要进行比较。比较结果将为每个类别给出a属于C的分数/可能性。(cf模糊集)

这种比较可以用向量空间模型来实现,该模型研究词汇的相似性。

命名实体识别可以帮助检测与特定类别相关的作者、工艺或工具的名称。

主要思想如下:一旦你定义了每个类别的特定特征,通过使用其词汇、作者、参考文献或其他什么,你就可以决定任何抽象的所有类别的成员分数。

所以,真正要问的问题是我应该使用哪个评分函数。答案在很大程度上取决于数据和你想要的结果。当你说一篇摘要是关于教育心理学的,你必须知道为什么。然后将其作为一个评分函数来实现。

作为一个侧节点,我补充说,通过在语料库上进行训练,神经网络可能会通过自动学习绕过评分。我对这方面的知识不多,不想多说。

最新更新