2017-09-23 80 views
0

我有一个XML文件,其中包含人员的详细信息。我想查询此文件以获取特定人员的所有详细信息,即我想获取特定人员的所有属性,如年龄,地点,组织,朋友等。查询XML文件

例如,如果我查询安娜吉,我会得到作为ABC的作品,属于钦奈,年龄为23岁,作为Shubham的朋友。此外,如果我查询Shubham,我会得到他所有的细节,比如作品,地点以及他是Annaji的朋友。 这是我的XML文件:

<text> 
<s> 
<coref set-id="set_0"> 
<w pos="nnp">Annaji</w> 
</coref> 
<w pos="vbz">works</w> 
<w pos="in">for</w> 
<w pos="nnp">ABC</w> 
<w pos=".">.</w> 
</s><s> 
<coref set-id="set_0"> 
<w pos="prp">He</w> 
</coref> 
<w pos="vbz">belongs</w> 
<w pos="to">to</w> 
<coref set-id="set_0"> 
<w pos="nnp">Chennai</w> 
</coref> 
<w pos=".">.</w> 
</s><s> 
<coref set-id="set_0"> 
<w pos="nnp">Annaji</w> 
</coref> 
<w pos="vbz">is</w> 
<w pos="cd">23</w> 
<w pos="nns">years</w> 
<w pos="jj">old</w> 
<w pos=".">.</w> 
</s><s> 
<coref set-id="set_0"> 
<w pos="prp">He</w> 
</coref> 
<w pos="vbz">is</w> 
<coref set-id="set_0"> 
<w pos="dt">a</w> 
<w pos="nn">friend</w> 
</coref> 
<w pos="in">of</w> 
<coref set-id="set_0"> 
<w pos="nnp">Shubham</w> 
</coref> 
<w pos=".">.</w> 
</s><s> 
<coref set-id="set_0"> 
<w pos="nnp">Shubham</w> 
</coref> 
<w pos="vbz">works</w> 
<w pos="in">for</w> 
<w pos="nnp">XYZ.</w> 
</s><s> 
<coref set-id="set_0"> 
<w pos="prp">He</w> 
</coref> 
<w pos="vbz">is</w> 
<w pos="in">from</w> 
<w pos="nnp">Bihar</w> 
<w pos=".">.</w> 
</s> 
</text> 

请告诉我,如果有任何的查询语言或图书馆,我可以用于此目的。 如果存在查询语言,该查询应该是什么?

+0

请将您的代码,无论您尝试过,而不是要求直接的解决方案。 –

+0

@NavinRawat感谢您的回复。我试图用'beautifulsoup'在'Python'中完成它,但实际上并没有成功。我搜索了一下,发现它也可以用'XQuery'完成。这就是为什么我没有发布任何代码。 –

+0

到目前为止,您在XQuery中尝试了哪些内容? – adamretter

回答

1

您的XML来源看起来像自由文本,标记了反映句子英语语法的标记。例如,你有这样一个句子:

<s> 
<coref set-id="set_0"> 
<w pos="nnp">Annaji</w> 
</coref> 
<w pos="vbz">is</w> 
<w pos="cd">23</w> 
<w pos="nns">years</w> 
<w pos="jj">old</w> 
<w pos=".">.</w> 
</s> 

回答一个查询,如“安娜吉多大?”从这个输入不仅仅是一个XML或XQuery问题,它是自然语言分析和解释中的一个问题。 (在“他是Shubham的朋友”的句子中,例如,你需要计算出“他”是指什么人)。

XQuery将帮助您找到具有特定属性或内容的元素,但是将代词与其指示对应起来的算法不是我们可以完全从XML/XQuery角度为您提供帮助的。