/* WTStatistics.java - Statistics of the database of the parsed Wiktionary. * Wiki format defined by code.google.com * * Copyright (c) 2009 Andrew Krizhanovsky <andrew.krizhanovsky at gmail.com> * Distributed under GNU Public License. */ package wikt.stat; //import wikipedia.sql.Connect; import wikokit.base.wikt.constant.Relation; import wikokit.base.wikipedia.language.LanguageType; import java.util.Map; /** Statistics of the database of the parsed Wiktionary. * Wiki format defined by code.google.com * * @see http://code.google.com/p/wikokit/wiki/SQLWiktParsedPhantasmagoria */ public class WTStatisticsGoogleWiki { /** Prints statistics about relations in Wiktionary. * * @param m_lang_rel_n map of maps with number of synonyms, antonyms, etc. * in English, Russian etc. (lang -> relations -> count) */ public static void printRelationsPerLanguage (Map<LanguageType, Map<Relation,Integer>> m_lang_rel_n) { // print header line System.out.println("== Number of semantic relations for each language =="); System.out.print("|| Language || Language code "); //Collection<Relation> all_rel = Relation.getAllRelations(); Relation[] all_rel = { Relation.synonymy, Relation.antonymy, Relation.hypernymy, Relation.hyponymy, Relation.holonymy, Relation.meronymy}; for(Relation r : all_rel) { System.out.print(" || " + r.toString()); } System.out.println(" || total ||"); // print values for(LanguageType lang : m_lang_rel_n.keySet()) { /*if(!m_lang_rel_n.containsKey(lang)) System.out.println(lang.toString() + " : 0"); else {*/ System.out.print("|| " + lang.getName() + " || " + lang.getCode()); Map<Relation,Integer> rel_n = m_lang_rel_n.get(lang); int total = 0; // number of relations for one language: synonyms + antonyms + ... for(Relation r : all_rel) { int n = rel_n.containsKey(r) ? rel_n.get(r) : 0; System.out.print(" || " + n); total += n; } System.out.println(" || " + total + " ||"); //} } System.out.println("\nLanguages with relations:" + m_lang_rel_n.size()); } /** Prints statistics about translations in Wiktionary. * * @param m_lang_n map of maps with number of translations into * English, Russian etc. (lang -> count) */ public static void printTranslationPerLanguage (Map<LanguageType, Integer> m_lang_n) { int total = 0; // total number of translations // print header line System.out.print("|| Language code || Language || n ||"); // print values for(LanguageType lang : m_lang_n.keySet()) { /*if(!m_lang_rel_n.containsKey(lang)) System.out.println(lang.toString() + " : 0"); else {*/ System.out.print("|| " + lang.getCode() + " || " + lang.getName()); int n = m_lang_n.get(lang); System.out.println(" || " + n + " ||"); total += n; //} } System.out.println("\nThere are translations into " + m_lang_n.size() + " languages."); System.out.println("\nTotal translations: " + total); } }