Search in sources :

Example 26 with TokenizerTextAnnotationBuilder

use of edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder in project cogcomp-nlp by CogComp.

the class TemporalNormalizerBenchmark method testNormalizationWithTrueExtraction.

/**
 * Normalize the dataset using real extraction
 * @param outputFolder
 * @param verbose
 * @throws Exception
 */
public void testNormalizationWithTrueExtraction(String outputFolder, boolean verbose) throws Exception {
    TextAnnotationBuilder tab = new TokenizerTextAnnotationBuilder(new StatefulTokenizer(false, false));
    System.out.println("Working Directory = " + System.getProperty("user.dir"));
    ResourceManager nerRm = new TemporalChunkerConfigurator().getDefaultConfig();
    IOUtilities.existsInClasspath(TemporalChunkerAnnotator.class, nerRm.getString("modelDirPath"));
    java.util.logging.Logger.getLogger("HeidelTimeStandalone").setLevel(Level.OFF);
    long preprocessTime = System.currentTimeMillis();
    List<TextAnnotation> taList = new ArrayList<>();
    POSAnnotator annotator = new POSAnnotator();
    for (int j = 0; j < te3inputText.size(); j++) {
        String text = testText.get(j);
        text = text.replaceAll("\\n", " ");
        TextAnnotation ta = tab.createTextAnnotation("corpus", "id", text);
        try {
            annotator.getView(ta);
        } catch (AnnotatorException e) {
            fail("AnnotatorException thrown!\n" + e.getMessage());
        }
        taList.add(ta);
    }
    long startTime = System.currentTimeMillis();
    int numTimex = 0;
    File outDir = new File(outputFolder);
    if (!outDir.exists()) {
        outDir.mkdir();
    }
    for (int j = 0; j < te3inputText.size(); j++) {
        TextAnnotation ta = taList.get(j);
        tca.addDocumentCreationTime(DCTs.get(j));
        if (verbose) {
            System.out.println(docIDs.get(j));
        }
        try {
            List<TimexChunk> timex = tca.extractTimexFromFile(te3inputText.get(j), testText.get(j), ta, verbose);
            tca.setTimex(timex);
            String outputFileName = outputFolder + "/" + docIDs.get(j) + ".tml";
            tca.write2Text(outputFileName, docIDs.get(j), testText.get(j));
            numTimex += timex.size();
            tca.deleteTimex();
        } catch (AnnotatorException e) {
            fail("Exception while adding TIMEX3 VIEW " + e.getStackTrace());
        }
    }
    long endTime = System.currentTimeMillis();
    long totalTime = endTime - startTime;
    System.out.println("Process time: " + totalTime);
    System.out.println("Preprocess + process time: " + (endTime - preprocessTime));
    System.out.println("Total timex3: " + numTimex);
}
Also used : TextAnnotationBuilder(edu.illinois.cs.cogcomp.annotation.TextAnnotationBuilder) TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) TimexChunk(edu.illinois.cs.cogcomp.temporal.normalizer.main.timex2interval.TimexChunk) POSAnnotator(edu.illinois.cs.cogcomp.pos.POSAnnotator) ArrayList(java.util.ArrayList) AnnotatorException(edu.illinois.cs.cogcomp.annotation.AnnotatorException) ResourceManager(edu.illinois.cs.cogcomp.core.utilities.configuration.ResourceManager) TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) StatefulTokenizer(edu.illinois.cs.cogcomp.nlp.tokenizer.StatefulTokenizer) TextAnnotation(edu.illinois.cs.cogcomp.core.datastructures.textannotation.TextAnnotation)

Example 27 with TokenizerTextAnnotationBuilder

use of edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder in project cogcomp-nlp by CogComp.

the class StatefullTokenizerTest method testConjunctions.

/**
 * Parse out a date, which will hopefully look like a date.
 */
@Test
public void testConjunctions() {
    TokenizerTextAnnotationBuilder bldr = new TokenizerTextAnnotationBuilder(new StatefulTokenizer(true, true));
    String tmp = "Bob O'Rourke isn't going to be a good ally!";
    TextAnnotation taA = bldr.createTextAnnotation("test", "test", tmp);
    String[] toks = taA.getTokens();
    assertEquals(toks[1], "O'Rourke");
}
Also used : TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) TextAnnotation(edu.illinois.cs.cogcomp.core.datastructures.textannotation.TextAnnotation) Test(org.junit.Test)

Example 28 with TokenizerTextAnnotationBuilder

use of edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder in project cogcomp-nlp by CogComp.

the class StatefullTokenizerTest method testEmail.

/**
 * Parse an empty string.
 */
@Test
public void testEmail() {
    TokenizerTextAnnotationBuilder bldr = new TokenizerTextAnnotationBuilder(new StatefulTokenizer(true, true));
    String text = "Although tomredman@mchsi.com is an email address.";
    TextAnnotation taA = bldr.createTextAnnotation("test", "test", text);
    assertEquals(taA.getNumberOfSentences(), 1);
    String[] toks = taA.getTokens();
    assertEquals(toks[1], "tomredman@mchsi.com");
    text = "JLama@summat To robert.serafin@kmz.com At bob_marly@kmz.com";
    taA = bldr.createTextAnnotation("test", "test", text);
    assertEquals(taA.getNumberOfSentences(), 1);
    toks = taA.getTokens();
    assertEquals(toks[0], "JLama@summat");
    assertEquals(toks[2], "robert.serafin@kmz.com");
    assertEquals(toks[4], "bob_marly@kmz.com");
    text = "3@:_* 6@o    aB'J   h@a}-";
    taA = bldr.createTextAnnotation("test", "test", text);
    toks = taA.getTokens();
    assertEquals(toks[5], "6@o");
    assertEquals(toks[7], "h@a");
    String tmp = "PhoCusWright@ITB Berlin: Wettbewerbsvorteil durch E-Business und Travel Technology Qualifizierter Branchentreff und Trendforum f&uuml;r internationale Travel Technology-Experten / Im Fokus: rasches Wachstum der E-Reisen in ganz Europa /Offizielle Partnerregion der ITB Berlin 2009: Metropole Ruhr - Kulturhauptstadt Europas 2010 \n" + " (lifepr) Berlin, 28.01.2009 - \"Expanding E-Travel Across Europe \" ist das &uuml;bergreifende Thema der in englischer Sprache stattfindenden Travel Technology-Konferenz am 12. M&auml;rz 2009. Das Programm wurde von PhoCusWright konzipiert, einem weltweit anerkannten, auf die Reisebranche spezialisierten Marktforschungs- und Beratungsunternehmen aus den USA. Die Ergebnisse der europ&auml;ischen Online-Reise-&Uuml;bersicht von PhoCusWright zeigen, dass der gezielte Einsatz von Technologie f&uuml;r den Erfolg der Reise-, Tourismus- und Hospitality-Branche unerl&auml;sslich ist: \"Heute werden mehr als ein Viertel (28 Prozent) der europ&auml;ischen Reisen online gebucht. Und bis 2010 wird sich die Zahl der Online-Buchungen bis zu einem Drittel steigern\", erkl&auml;rt Michaela Papenhoff, Senior Market Analyst f&uuml;r PhoCusWright und CEO h2c consulting gmbh. Umfassende Einblicke in Entwicklungen, Innovationen und neue Services bietet PhoCusWright@ITB Berlin in einer Reihe von Keynotes, Executive Roundtables, CEO-Interviews und \"Five Minutes of Fame\"-Kurzpr&auml;sentationen.\n" + " Top-Referenten &uuml;ber aktuelle Entwicklungen im Travel E-Business\n" + " Zu den Programm-Highlights z&auml;hlt die Session \"Technical Innovation Re-Invents Train Travel Distribution\". So einfach wie der Online-Kauf eines Flugtickets soll in Zukunft auch der Erwerb einer Zugfahrkarte sein. Die Diskussion &uuml;ber die technologischen und wirtschaftlichen Barrieren und M&ouml;glichkeiten von Internet-Ticketbuchungen wird durch eine Keynote von Eberhard Kurz, CIO Deutsche Bahn AG, hochkar&auml;tig eingeleitet. \n" + " Auch die Keynote \"Luxury and Romance Meet Technology\" l&auml;dt zu kontroversen Debatten ein. Tamara Heber-Percy, Mitbegr&uuml;nderin des Webportals \"Mr. and Mrs. Smith\" sowie James Lohan, Managing Director von \"Mr. and Mrs. Smith\", beleuchten das weite Online-Feld der Luxus-Marken sowohl in Boutiquen als auch in der Reiseindustrie. \n" + " &Uuml;ber den Tag verteilt sorgen eine Reihe interessanter Executive Roundtables f&uuml;r Diskussionsstoff. So zeigt das Thema \"The Semantic Web Meets Travel\" die Schnelllebigkeit des Internets auf: Kaum scheint das volle Potential im Web ausgesch&ouml;pft zu sein, kommt die n&auml;chste Generation: das \"Semantic Web\". Auch der Roundtable \"The Power of Local\" verspricht reichlich Z&uuml;ndstoff. Trotz der weltweiten Expansion gro&szlig;er OTAs (Online Travel Agency) gedeihen viele regionale OTAs auf den jeweils inl&auml;ndischen M&auml;rkten. Der Schl&uuml;ssel f&uuml;r ihren Erfolg ist der Wettbewerbsvorteil auf lokaler Ebene. Beim Gespr&auml;ch &uuml;ber \"Best Practices in Mobile Applications for Travel\" wird die mobile Reise-Kommunikation unter die Lupe genommen. Dazu geh&ouml;ren neue Wireless-Technologien, konvergente Next-Generation-Ger&auml;te und benutzerfreundliche Anwendungen wie Kartierung. Und beim Roundtable \"Economics of Pay Per Action (PPC) and Pay Per Click (PPA)\" wird klar: Preisexzesse bei Suchbegriffen (z.B. Google AdWords) machen Hybrid-Gesch&auml;ftsmodelle zunehmend attraktiv und damit zur neuen Herausforderung f&uuml;r die traditionellen Buchungsmethoden. \n" + " In den vier Sessions \"Five Minutes of Fame\" bieten CEOs von Start-ups in der Reisebranche einen kurzen Einblick in ihre erfolgreichen Gesch&auml;ftsmodelle. \"Das wichtige an diesem umfassenden Programm ist, dass der Einsatz von Travel Technology an praktischen Beispielen der Gesch&auml;ftswelt durch hochkar&auml;tige Redner erkl&auml;rt wird\", erl&auml;utert Michaela Papenhoff. \"Experten f&uuml;r Sales- Marketing und Unternehmensentwicklung in der Reise-, Tourismus- und Hospitality-Branche erfahren, wie technologischer Forschritt genutzt werden kann, um Ertr&auml;ge zu erzielen, Margen zu verbessern und operative Effizienz zu erreichen.\"\n" + " Im &Uuml;brigen geht am 11. M&auml;rz 2009 der im letzten Jahr erfolgreich gestartete PhoCusWright Bloggers Summit in die zweite Runde. Blogger aus der Reiseindustrie tauschen sich &uuml;ber aktuelle und zuk&uuml;nftige Trends im Bereich von User-Generated Content aus. Kostenlose Workshops mit vielen Fallstudien greifen unter anderem Themen wie Fragmentierung und Konsolidierung im Bereich Social Media, Twitter und SEO auf. \n" + " PhoCusWright@ITB Berlin findet am 11. und 12. M&auml;rz 2009 in Halle 7.3, Saal Europa, im Rahmen des ITB Berlin Kongress statt. Weitere Informationen zu den Veranstaltungen gibt es unter www.itb-kongress.de/.... Die Anmeldung zu PhoCusWright ITB@Berlin kann vorab online erfolgen. Die Teilnahmegeb&uuml;hr von 350 Euro umfasst alle Sessions, Imbiss, Mittagessen und einen Cocktailempfang im Anschluss an die Konferenz. Bis 31. Januar gilt der Early Bird-Tarif von 300 anstatt 350 Euro.\n" + " &Uuml;ber die ITB Berlin und den ITB Berlin Kongress\n" + " Die ITB Berlin findet von Mittwoch bis Sonntag, 11. bis 15. M&auml;rz 2009 statt. Von Mittwoch bis Freitag ist die ITB Berlin f&uuml;r Fachbesucher ge&ouml;ffnet. Parallel zur Messe l&auml;uft der ITB Berlin Kongress von Mittwoch bis Samstag, 11. bis 14. M&auml;rz 2009. Das vollst&auml;ndige Programm ist unter www.itb-kongress.de abrufbar.\n" + " Partner des ITB Berlin Kongresses sind die Fachhochschule Worms und das Marktforschungsunternehmen der Reiseindustrie PhoCusWright Inc. mit Sitz in den USA. Co-Host des diesj&auml;hrigen ITB Berlin Kongresses ist die T&uuml;rkei. Weitere Sponsoren des ITB Berlin Kongresses sind Top Alliance f&uuml;r den VIP-Service, hospitalityInside.com als Medienpartner des ITB Hospitality Days, die Flug Revue als Medienpartner des ITB Aviation Days und die Planeterra Foundation als Sponsor des ITB Corporate Social Responsibility Days. Kooperationspartner der ITB Business Travel Days sind: Air Berlin PLC & Co. Luftverkehrs KG, Verband Deutsches Reisemanagement e.V. (VDR), Vereinigung Deutscher Veranstaltungsorganisatoren e.V., HSMA Deutschland e.V., Deutsche Bahn AG, geschaeftsreise1.de, hotel.de, Kerstin Schaefer e.K. - Mobility Services und Intergerma. Air Berlin ist Premium Sponsor der ITB Business Travel Days 2009. \n" + " Weitere Informationen:\n" + " www.itb-berlin.de \n" + " www.itb-kongress.de\n" + "Ansprechpartner:\n" + "Frau Astrid Ehring\n" + "Telefon: +49 (30) 3038-2275\n" + "Fax: +49 (30) 3038-2141\n" + "Zust&auml;ndigkeitsbereich: Pressereferentin\n" + "F&uuml;r die oben stehende Pressemitteilung ist allein der jeweils angegebene Herausgeber (siehe Firmeninfo) verantwortlich. Dieser ist in der Regel auch Urheber des Pressetextes, sowie der angeh&auml;ngten Bild-, Ton und Informationsmaterialien. Die Huber Verlag f&uuml;r Neue Medien GmbH &uuml;bernimmt keine Haftung f&uuml;r die Korrektheit oder Vollst&auml;ndigkeit der dargestellten Meldung. Auch bei &Uuml;bertragungsfehlern oder anderen St&ouml;rungen haftet sie nur im Fall von Vorsatz oder grober Fahrl&auml;ssigkeit.\n" + " Die Nutzung von hier archivierten Informationen zur Eigeninformation und redaktionellen Weiterverarbeitung ist in der Regel kostenfrei. Bitte kl&auml;ren vor einer Weiterverwendung urheberrechtliche Fragen mit dem angegebenen Herausgeber. Bei Ver&ouml;ffentlichung senden Sie bitte ein Belegexemplar an service@lifepr.de Eine";
    taA = bldr.createTextAnnotation("test", "test", tmp);
    toks = taA.getTokens();
    assertEquals(toks[0], "PhoCusWright@ITB");
}
Also used : TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) TextAnnotation(edu.illinois.cs.cogcomp.core.datastructures.textannotation.TextAnnotation) Test(org.junit.Test)

Example 29 with TokenizerTextAnnotationBuilder

use of edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder in project cogcomp-nlp by CogComp.

the class BulkTokenizer method main.

/**
 * @param args
 * @throws IOException
 */
public static void main(String[] args) throws IOException {
    parseArgs(args);
    if (file == null) {
        System.err.println("Must provide a file or directory name on the command line.");
        return;
    }
    File[] files;
    File nf = new File(file);
    if (nf.isDirectory())
        files = new File(args[0]).listFiles();
    else {
        files = new File[1];
        files[0] = nf;
    }
    ArrayList<String> datas = readAllFiles(files);
    BufferedWriter fw = new BufferedWriter(new FileWriter(new File("tokenizerdiffs.out")));
    final TextAnnotationBuilder stab = new TokenizerTextAnnotationBuilder(new StatefulTokenizer());
    if (profile) {
        System.out.println("Starting profiling");
        while (true) {
            for (String data : datas) {
                stab.createTextAnnotation(data);
            }
        }
    } else {
        System.out.println("Starting new annotations");
        long nt = System.currentTimeMillis();
        ArrayList<TextAnnotation> newannotations = new ArrayList<TextAnnotation>();
        final TextAnnotationBuilder ntab = new TokenizerTextAnnotationBuilder(new StatefulTokenizer());
        for (String data : datas) {
            TextAnnotation ta = ntab.createTextAnnotation(data);
            newannotations.add(ta);
        }
        nt = System.currentTimeMillis() - nt;
        System.out.println("Starting old annotations");
        long ot = System.currentTimeMillis();
        ArrayList<TextAnnotation> oldannotations = new ArrayList<TextAnnotation>();
        final TextAnnotationBuilder tab = new TokenizerTextAnnotationBuilder(new IllinoisTokenizer());
        for (String data : datas) {
            TextAnnotation ta = tab.createTextAnnotation(data);
            oldannotations.add(ta);
        }
        ot = System.currentTimeMillis() - ot;
        System.out.println("new way = " + nt + ", old way = " + ot);
        int good = 0, bad = 0;
        for (int i = 0; i < oldannotations.size(); i++) {
            File file = files[i];
            TextAnnotation newone = newannotations.get(i);
            TextAnnotation oldone = oldannotations.get(i);
            if (newone.sentences().equals(oldone.sentences())) {
                good++;
            } else {
                bad++;
                fw.write("-" + file + "\n");
                if (verbose) {
                    List<Sentence> newsentences = newone.sentences();
                    List<Sentence> oldsentences = oldone.sentences();
                    int max = newsentences.size() > oldsentences.size() ? newsentences.size() : oldsentences.size();
                    boolean sentencewritten = false;
                    for (int j = 0; j < max; j++) {
                        String news = newsentences.size() > j ? newsentences.get(j).toString() : "???";
                        String olds = oldsentences.size() > j ? oldsentences.get(j).toString() : "???";
                        if (!compareSentences(olds, news)) {
                            if (!sentencewritten) {
                                sentencewritten = true;
                                fw.write("-" + file + "\n");
                                fw.write(newone.toString() + "\n");
                            }
                            fw.write(" new : " + news + "\n old : " + olds + "\n");
                        }
                    }
                }
            }
        }
        fw.close();
        System.out.println(good + " correct, " + bad + " wrong.");
    }
}
Also used : TextAnnotationBuilder(edu.illinois.cs.cogcomp.annotation.TextAnnotationBuilder) TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) FileWriter(java.io.FileWriter) IllinoisTokenizer(edu.illinois.cs.cogcomp.nlp.tokenizer.IllinoisTokenizer) ArrayList(java.util.ArrayList) BufferedWriter(java.io.BufferedWriter) TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) StatefulTokenizer(edu.illinois.cs.cogcomp.nlp.tokenizer.StatefulTokenizer) TextAnnotation(edu.illinois.cs.cogcomp.core.datastructures.textannotation.TextAnnotation) File(java.io.File) Sentence(edu.illinois.cs.cogcomp.core.datastructures.textannotation.Sentence)

Example 30 with TokenizerTextAnnotationBuilder

use of edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder in project cogcomp-nlp by CogComp.

the class TokenizerTextAnnotationBuilderTest method testBuilderWithEmptyWhiteSpaces.

@Test
public void testBuilderWithEmptyWhiteSpaces() {
    TokenizerTextAnnotationBuilder bldr = new TokenizerTextAnnotationBuilder(new IllinoisTokenizer());
    // making sure that the tokenization works fine when the input is differet forms of whitespaces
    final String sentA = "";
    final String sentB = "\n";
    final String sentC = " ";
    TextAnnotation taA = bldr.createTextAnnotation("test", "test", sentA);
    TextAnnotation taB = bldr.createTextAnnotation("test", "test", sentB);
    TextAnnotation taC = bldr.createTextAnnotation("test", "test", sentC);
    assertEquals(taA.getView(ViewNames.TOKENS).getConstituents().size(), 0);
    assertEquals(taB.getView(ViewNames.TOKENS).getConstituents().size(), 0);
    assertEquals(taC.getView(ViewNames.TOKENS).getConstituents().size(), 0);
}
Also used : TokenizerTextAnnotationBuilder(edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder) TextAnnotation(edu.illinois.cs.cogcomp.core.datastructures.textannotation.TextAnnotation) Test(org.junit.Test)

Aggregations

TokenizerTextAnnotationBuilder (edu.illinois.cs.cogcomp.nlp.utility.TokenizerTextAnnotationBuilder)42 TextAnnotation (edu.illinois.cs.cogcomp.core.datastructures.textannotation.TextAnnotation)31 StatefulTokenizer (edu.illinois.cs.cogcomp.nlp.tokenizer.StatefulTokenizer)29 TextAnnotationBuilder (edu.illinois.cs.cogcomp.annotation.TextAnnotationBuilder)19 Test (org.junit.Test)16 ResourceManager (edu.illinois.cs.cogcomp.core.utilities.configuration.ResourceManager)12 Constituent (edu.illinois.cs.cogcomp.core.datastructures.textannotation.Constituent)11 AnnotatorException (edu.illinois.cs.cogcomp.annotation.AnnotatorException)9 POSAnnotator (edu.illinois.cs.cogcomp.pos.POSAnnotator)9 Properties (java.util.Properties)7 IntPair (edu.illinois.cs.cogcomp.core.datastructures.IntPair)6 ChunkerAnnotator (edu.illinois.cs.cogcomp.chunker.main.ChunkerAnnotator)5 View (edu.illinois.cs.cogcomp.core.datastructures.textannotation.View)5 POSTaggerAnnotator (edu.stanford.nlp.pipeline.POSTaggerAnnotator)5 ParserAnnotator (edu.stanford.nlp.pipeline.ParserAnnotator)5 XmlTextAnnotationMaker (edu.illinois.cs.cogcomp.annotation.XmlTextAnnotationMaker)4 XmlDocumentProcessor (edu.illinois.cs.cogcomp.core.utilities.XmlDocumentProcessor)4 ChunkerConfigurator (edu.illinois.cs.cogcomp.chunker.main.ChunkerConfigurator)3 XmlTextAnnotation (edu.illinois.cs.cogcomp.core.datastructures.textannotation.XmlTextAnnotation)3 SpanLabelView (edu.illinois.cs.cogcomp.core.datastructures.textannotation.SpanLabelView)2