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);
}
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");
}
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ü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 übergreifende Thema der in englischer Sprache stattfindenden Travel Technology-Konferenz am 12. Mä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äischen Online-Reise-Übersicht von PhoCusWright zeigen, dass der gezielte Einsatz von Technologie für den Erfolg der Reise-, Tourismus- und Hospitality-Branche unerlässlich ist: \"Heute werden mehr als ein Viertel (28 Prozent) der europäischen Reisen online gebucht. Und bis 2010 wird sich die Zahl der Online-Buchungen bis zu einem Drittel steigern\", erklärt Michaela Papenhoff, Senior Market Analyst fü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äsentationen.\n" + " Top-Referenten über aktuelle Entwicklungen im Travel E-Business\n" + " Zu den Programm-Highlights zä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 über die technologischen und wirtschaftlichen Barrieren und Möglichkeiten von Internet-Ticketbuchungen wird durch eine Keynote von Eberhard Kurz, CIO Deutsche Bahn AG, hochkarätig eingeleitet. \n" + " Auch die Keynote \"Luxury and Romance Meet Technology\" lädt zu kontroversen Debatten ein. Tamara Heber-Percy, Mitbegrü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" + " Über den Tag verteilt sorgen eine Reihe interessanter Executive Roundtables für Diskussionsstoff. So zeigt das Thema \"The Semantic Web Meets Travel\" die Schnelllebigkeit des Internets auf: Kaum scheint das volle Potential im Web ausgeschöpft zu sein, kommt die nächste Generation: das \"Semantic Web\". Auch der Roundtable \"The Power of Local\" verspricht reichlich Zündstoff. Trotz der weltweiten Expansion großer OTAs (Online Travel Agency) gedeihen viele regionale OTAs auf den jeweils inländischen Märkten. Der Schlüssel für ihren Erfolg ist der Wettbewerbsvorteil auf lokaler Ebene. Beim Gespräch über \"Best Practices in Mobile Applications for Travel\" wird die mobile Reise-Kommunikation unter die Lupe genommen. Dazu gehören neue Wireless-Technologien, konvergente Next-Generation-Gerä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äftsmodelle zunehmend attraktiv und damit zur neuen Herausforderung fü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äftsmodelle. \"Das wichtige an diesem umfassenden Programm ist, dass der Einsatz von Travel Technology an praktischen Beispielen der Geschäftswelt durch hochkarätige Redner erklärt wird\", erläutert Michaela Papenhoff. \"Experten für Sales- Marketing und Unternehmensentwicklung in der Reise-, Tourismus- und Hospitality-Branche erfahren, wie technologischer Forschritt genutzt werden kann, um Erträge zu erzielen, Margen zu verbessern und operative Effizienz zu erreichen.\"\n" + " Im Übrigen geht am 11. März 2009 der im letzten Jahr erfolgreich gestartete PhoCusWright Bloggers Summit in die zweite Runde. Blogger aus der Reiseindustrie tauschen sich über aktuelle und zukü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ä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ü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" + " Über die ITB Berlin und den ITB Berlin Kongress\n" + " Die ITB Berlin findet von Mittwoch bis Sonntag, 11. bis 15. März 2009 statt. Von Mittwoch bis Freitag ist die ITB Berlin für Fachbesucher geöffnet. Parallel zur Messe läuft der ITB Berlin Kongress von Mittwoch bis Samstag, 11. bis 14. März 2009. Das vollstä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ährigen ITB Berlin Kongresses ist die Türkei. Weitere Sponsoren des ITB Berlin Kongresses sind Top Alliance fü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ändigkeitsbereich: Pressereferentin\n" + "Fü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ängten Bild-, Ton und Informationsmaterialien. Die Huber Verlag für Neue Medien GmbH übernimmt keine Haftung für die Korrektheit oder Vollständigkeit der dargestellten Meldung. Auch bei Übertragungsfehlern oder anderen Störungen haftet sie nur im Fall von Vorsatz oder grober Fahrlässigkeit.\n" + " Die Nutzung von hier archivierten Informationen zur Eigeninformation und redaktionellen Weiterverarbeitung ist in der Regel kostenfrei. Bitte klären vor einer Weiterverwendung urheberrechtliche Fragen mit dem angegebenen Herausgeber. Bei Verö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");
}
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.");
}
}
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);
}
Aggregations