java

iibxawm4  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(356)

我希望有人能帮助我:首先,我还是一个java新手,但我想我在慢慢进步。
因此,我有一个带有语言注解的xml文件,我想访问一个特定的节点,a)对其执行模式匹配操作,b)对匹配执行进一步的操作
这是一个文本示例,显示节点:

<token id="13">
        <word>.</word>
        <lemma>.</lemma>
        <CharacterOffsetBegin>57</CharacterOffsetBegin>
        <CharacterOffsetEnd>58</CharacterOffsetEnd>
        <POS>.</POS>
        <NER>O</NER>
      </token>
    </tokens>
    <parse>(ROOT (S (NP (DT The) (NN world)) (VP (VBZ owes) (NP (DT all)) (NP (NP (NP (PRP$ its) (ADJP (RB onward) (NP (NNS impulses)) (PP (TO to))) (NNS men)) (ADJP (RB ill))) (PP (IN at) (NP (NN ease))))) (. .))) </parse>
    <basic-dependencies>
      <dep type="det">
        <governor idx="2">world</governor>
        <dependent idx="1">The</dependent>
      </dep>
      <dep type="nsubj">
        <governor idx="3">owes</governor>
        <dependent idx="2">world</dependent>
      </dep>
      <dep type="iobj">
        <governor idx="3">owes</governor>
        <dependent idx="4">all</dependent>
      </dep>
      <dep type="poss">
        <governor idx="9">men</governor>
        <dependent idx="5">its</dependent>
      </dep>

(所以在这里,我有一些文本的语言注解,比如一些标记、词性(pos)、命名实体识别(ner)和句法/依赖分析。这实际上是斯坦福corenlp工具箱应用于文本的输出..没有添加整个文件,因为它太大了)
我的问题是:根据我所阅读的内容,似乎stax解析器是访问文件并用我的操作生成新文件的好方法。是这样吗?我的问题还包括,我可以用stax做一个模式匹配操作吗?
万分感谢。

zf2sa74q

zf2sa74q1#

表达式 (ROOT ...) 格式为s-expression。javase中的任何东西都无法解析它,因此您必须做其他事情。
当然,您必须使用stax(或其他东西)来解析xml文件。这样你就可以把上面的弦作为弦来抓。您必须对这些字符串运行另一个解析器才能获得它们的结构。
初步的谷歌搜索给了我http://rosettacode.org/wiki/s-expressions#java 这是基于http://jfkbits.blogspot.jp/2008/05/thoughts-on-s-expression-parser.html. 但您可以自己使用“java中的s表达式解析器”之类的搜索词,查看最初的几个结果,看看适合您的是什么。

相关问题