【发布时间】:2016-12-22 14:51:44
【问题描述】:
我有一个大的XML 文件,下面是其中的摘录:
...
<LexicalEntry id="Ait~ifAq_1">
<Lemma partOfSpeech="n" writtenForm="اِتِّفاق"/>
<Sense id="Ait~ifAq_1_tawaAfuq_n1AR" synset="tawaAfuq_n1AR"/>
<WordForm formType="root" writtenForm="وفق"/>
</LexicalEntry>
<LexicalEntry id="tawaA&um__1">
<Lemma partOfSpeech="n" writtenForm="تَوَاؤُم"/>
<Sense id="tawaA&um__1_AinosijaAm_n1AR" synset="AinosijaAm_n1AR"/>
<WordForm formType="root" writtenForm="وأم"/>
</LexicalEntry>
<LexicalEntry id="tanaAgum_2">
<Lemma partOfSpeech="n" writtenForm="تناغُم"/>
<Sense id="tanaAgum_2_AinosijaAm_n1AR" synset="AinosijaAm_n1AR"/>
<WordForm formType="root" writtenForm="نغم"/>
</LexicalEntry>
<Synset baseConcept="3" id="tawaAfuq_n1AR">
<SynsetRelations>
<SynsetRelation relType="hyponym" targets="AinosijaAm_n1AR"/>
<SynsetRelation relType="hyponym" targets="AinosijaAm_n1AR"/>
<SynsetRelation relType="hypernym" targets="ext_noun_NP_420"/>
</SynsetRelations>
<MonolingualExternalRefs>
<MonolingualExternalRef externalReference="13971065-n" externalSystem="PWN30"/>
</MonolingualExternalRefs>
</Synset>
...
我想从中提取特定信息。对于给定的writtenForm,无论是来自<Lemma> 还是<WordForm>,程序都会从<Sense> 的writtenForm(相同的<LexicalEntry>)中获取synset 的值,并搜索所有id 的值<Synset> 与来自<Sense> 的synset 具有相同的值。之后,程序给我们那个Synset的所有关系,即它显示relType的值并返回<LexicalEntry>并寻找<Sense>的值synset与@的值相同987654339@ 然后显示其writtenForm。
我觉得有点复杂,但结果应该是这样的:
اِتِّفاق hyponym تَوَاؤُم, اِنْسِجام
其中一个解决方案是使用 Stream 阅读器,因为它会消耗内存。但我不知道我应该如何继续得到我想要的。请帮帮我。
【问题讨论】:
-
对不起,但实际上我没有尝试任何东西,因为我不知道该使用什么。我确实提到我可以使用 Stream 阅读器,但是如何使用??
-
先阅读基础教程
-
您想为此使用现成的库还是要编写自己的库?
-
如果可能,为什么不呢?如果有其他解决方案,我会很高兴听到它。