您可以使用 Spacy 检索命名实体,然后使用搜索 API 将它们链接到 WikiData。
对于 Spacy 与命名实体不匹配的句子的剩余部分,您可以从句子中创建一个 ngram 列表,从最大的 ngram 开始,您可以使用 WikiData 搜索 API 来查找 WikiData 主题。
词性标注可以很好地利用,也就是说语法解析信息更强大,因为你可以知道单词之间的关系。例如,给出以下输出链接语法 http://abiword.org/projects/link-grammar/:
Found 8 linkages (8 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS= 0.15 LEN=9)
+-------------------------Xp-------------------------+
+----------->WV---------->+ |
+-------Wd------+ +---------Osn--------+ |
| +---G---+----Ss---+----Os----+ | |
| | | | | | |
LEFT-WALL Bob.m Marley[!] wrote.v-d Natural[!] Mystic[!] .
您可以看出主题是“Bob Marley”,因为
- “wrote”与“Marley”相连S http://abiword.org/projects/link-grammar/dict/section-S.html它将主语名词与有限动词连接起来。
- “Marley”通过以下方式连接到“Bob”G http://abiword.org/projects/link-grammar/dict/section-G.html将专有名词连接在一起。
因此,“Bob Marley”是一个很好的实体候选者(而且它的两个单词都大写)。
鉴于上面的解析“树”,即使“自然”和“神秘”位于句子的同一侧,也很难判断它们是否相关。
链接语法提供的第二个解析具有相同的成本向量,并将“Natural Mystic”再次与 G 连接在一起。
就这个:
Linkage 2, cost vector = (UNUSED=0 DIS= 0.15 LEN=9)
+-------------------------Xp-------------------------+
+----------->WV---------->+ |
+-------Wd------+ +---------Os---------+ |
| +---G---+----Ss---+ +----G----+ |
| | | | | | |
LEFT-WALL Bob.m Marley[!] wrote.v-d Natural[!] Mystic[!] .
因此,在我看来,“Bob Marley”和“Natural Mystic”是维基数据搜索的良好候选者。
这是语法和拼写正确的简单问题。
以下是对同一句子 11 个小写字母的解析:
Linkage 1, cost vector = (UNUSED=1 DIS= 0.15 LEN=14)
+------------------------Xp------------------------+
+----------------------Wa---------------------+ |
| +------------------AN-----------------+ |
| | +-------------AN-------------+ |
| | | +----AN---+ |
| | | | | |
LEFT-WALL Bob.m marley[?].n [wrote] natural.n mystic.n .
LG 甚至不认识这个动词。