Na mých webech Java a SQL školení jsem přidal u všech novinek a doporučené literatury odkazy na související novinky:
Tyto novinky se vypočítávají dynamicky na základě několika kritérií, z nichž jedno je podobnost textů a klíčových slov příslušných novinek. K výpočtu jsem použil níže uvedený algoritmus, který vrací číslo v intervalu 0 až 1, přičemž nula znamená, že dva texty spolu vůbec nesouvisí a jednička znamená, že jsou na 100% shodné:
public class DocumentVector {
private MapwordMap = new HashMap ();
private void incCount(String word) {
Integer oldCount = wordMap.get(word);
wordMap.put(word, oldCount == null ? 1 : oldCount + 1);
}
private double getCosineSimilarityWith(DocumentVector otherVector) {
double innerProduct = 0;
for (String w : this.wordMap.keySet()) {
innerProduct += this.getCount(w) * otherVector.getCount(w);
}
return innerProduct / (this.getNorm() * otherVector.getNorm());
}
private double getNorm() {
double sum = 0;
for (Integer count : wordMap.values()) {
sum += count * count;
}
return Math.sqrt(sum);
}
private int getCount(String word) {
return wordMap.containsKey(word) ? wordMap.get(word) : 0;
}
public static double calcSimilarity(String doc1, String doc2) { DocumentVector v1 = new DocumentVector();
for (String w : doc1.split("[^a-zA-Z]+")) {
v1.incCount(w);
} DocumentVector v2 = new DocumentVector();
for (String w : doc2.split("[^a-zA-Z]+")) {
v2.incCount(w);
} return v1.getCosineSimilarityWith(v2);
}
public static void main(String[] args) {
String doc1 = "maven, dependency, plugin, shade";
String doc2 = "kurz maven, školení maven, apache maven"; System.out.println("Similarity = " + calcSimilarity(doc1, doc2));
} }
A pak že je programování jenom o tom dostat data z / do databáze ... NENÍ!!! :)
Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek času na dotazy ohledně probíraných témat.
Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.
Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů. Též oceňuji, že jsme se kromě probírané látky dozvěděli i spoustu dalších zajímavých věcí a trendů z IT. A důležitá byla také přátelská atmosféra školení.