@@ -0,0 +1,1509 @@
+package com.formulasearchengine.mathosphere.mathpd;%0A%0Aimport com.formulasearchengine.mathosphere.mathpd.pojos.ArxivDocument;%0Aimport org.apache.flink.api.java.tuple.Tuple2;%0Aimport org.w3c.dom.Node;%0A%0Aimport javax.xml.xpath.XPathExpressionException;%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0A/**%0A * Extraction of basic features required for Math-PD use cases.%0A */%0Apublic class MathPdFeatureExtractor %7B%0A%0A    /**%0A     * Gets%0A     * @param n%0A     * @return%0A     */%0A    private static String getNodeTextContent(Node n) %7B%0A        return n.getTextContent().trim();%0A    %7D%0A%0A    /**%0A     * returns a list consisting of all content-element bigrams (each node represented by its tag name), i.e., always one leaf node that is a content element and its direct parent node%0A     * example:%0A     * e=mc%5E2 --%3E bigrams: e =; = m; m %5Ctimes; c %5E; %5E 2%0A     *%0A     * @param document%0A     * @return%0A     */%0A    public static List%3CTuple2%3CString, String%3E%3E getBigramLeaves(ArxivDocument document) throws XPathExpressionException %7B%0A        final List%3CTuple2%3CString, String%3E%3E bigramLeaves = new ArrayList%3C%3E();%0A        for( Node curLeafNode : document.getCElementLeafNodes())%7B%0A            bigramLeaves.add(new Tuple2%3C%3E(getNodeTextContent(curLeafNode), getNodeTextContent(curLeafNode.getParentNode())));%0A            System.out.print(getNodeTextContent(curLeafNode));%0A            System.out.print(%22 ; %22);%0A            System.out.println(getNodeTextContent(curLeafNode.getParentNode()));%0A        %7D%0A%0A        return bigramLeaves;%0A    %7D%0A%7D%0A

add missing file