Archive for the ‘Statistik & Zahlen’ Category.

Visual Cryptography

Heute habe ich ein Paper von Naor und Shamir (der Shamir aus „RSA“) wiedergefunden, das sich mit visueller Kryptografie beschäftigt. Letztlich geht es darum, dass zwei oder mehr Folien, die jeweils mit einem scheinbar zufälligen Muster bedruckt werden, übereinandergelegt ein Bild ergeben. Googeln hat daraufhin auch einen interessanten Link ausgespuckt: http://klaue.net16.net/programme/ownprogs/java/visualcryptography.php#download.

Muss ich mir gelegentlich mal anschauen…

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Levenshtein Distanz mit C# berechnen

Da ich momentan beruflich viel mit der Ähnlichkeit von Strings zu tun habe und ich eine handliche Lösung suchte, die ohne installiertes R auskommt, habe ich mir mit C# schnell ein entsprechendes Programm geschrieben. Die Implementierung des Levenshtein-Algorithmus gab es unter http://www.merriampark.com/ldcsharp.htm, daher musste ich nur die entsprechende Anwendung drum herum stricken. Und wenn man aus der Java-Welt kommt, ist C# echt einfach.

Levenshtein-Rechner

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Google Flu Trends

Mit Google Flu Trends (http://www.google.org/flutrends/intl/de/de/) gibt es ein schönes Beispiel, zuwas die Auswertung von Suchanfragen nützlich sein kann.

Zitat von der Webseite:

Woche für Woche suchen Millionen von Nutzern auf der ganzen Welt online nach Informationen zum Thema Gesundheit. Erwartungsgemäß gibt es während der Grippezeit häufiger Suchanfragen zur Grippe und während des Pollenflugs mehr allergiebezogene Anfragen sowie im Sommer mehr Anfragen zum Thema Sonnenbrand. Sie können derartige Suchvolumenmuster mit Google Insights for Search genauer analysieren. Aber können Trends bei Suchanfragen tatsächlich als Basis für akkurate und zuverlässige Modelle von Phänomenen, die im echten Leben vorkommen, dienen?

Unsere Beobachtungen haben gezeigt, dass es einen engen Zusammenhang zwischen der Anzahl der Suchanfragen zum Thema Grippe und der Anzahl der Personen mit Grippesymptomen gibt. Natürlich ist nicht jede Person, die nach dem Begriff „Grippe“ sucht, tatsächlich krank, aber wenn man alle grippebezogenen Suchanfragen zusammenfasst, ergibt sich ein Muster. Wir haben die Anzahl der Suchanfragen mit den Ergebnissen traditioneller Grippeüberwachungssystemen verglichen und herausgefunden, dass bestimmte Suchanfragen besonders während der Grippezeit gestellt werden. Durch die Zählung dieser Suchanfragen können wir schätzen, wie häufig die Grippe in bestimmten Ländern und Regionen weltweit auftritt.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Geniale Visualisierung von Geschichtsdaten

Durch Zufall habe ich eben eine geniale Visualisierung von Geschichtsdaten gefunden, die mit Processing (Arduino lässt grüßen) umgesetzt wurde. Gezeigt wird der Niedergang der Weltreiche Großbritannien, Spanien, Portugal und Frankreich im 19. und 20. Jahrhundert.

Hier der Link: http://vimeo.com/6437816.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Google Domestic Trends

Als Statistiker find ich’s natürlich cool, dass Google die Suchanfragen auswertet, um dort Trends zu analysieren http://www.google.com/finance/domestic_trends.

Interessant ist, dass bei vielen der Trends die Finanzkrise keinerlei Auswirkung zu haben scheint.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Dynamik von Nachrichten im Internet

Unter http://memetracker.org/quotes-kdd09.pdf gibt es ein interessantes Paper mit dem Titel „Meme-tracking and the Dynamics of the News Cycle“ zum Download, das sich mit der Ausbreitung von Phrasen im Internet beschäftigt. Ein Meme ist dabei laut Wikipedia:


The term Internet meme (pronounced /mi:m/, meem) is a phrase used to describe a catchphrase or concept that spreads quickly from person to person via the Internet, much like an esoteric inside joke.[1] The term is a reference to the concept of memes, although this concept refers to a much broader category of cultural information.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Levenshtein-Distanz für den SQL-Server

Heute habe ich eine Implementierung der Levenshtein-Distan als Funktion für den SQL Server gefunden: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=51540.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Über die Ähnlichkeit von Strings

Ein Problem beim Migrieren von Datenbanken ist das Sicherstellen, dass kein Element doppelt vorkommt. Wenn a) verschiedene Datenbank-Systeme beteiligt sind und b) eine Vielzahl von Personen, die die Daten eingeben, verspricht dies, ein interessantes Problem zu werden.

Konkretisieren wir das mal an einem Beispiel: In einer Bibliothek arbeiten Frau A und Herr B. Frau A verwaltet eine Liste von Schallplatten in Excel, Herr B nutzt eine kleine Access Anwendung. Da die beiden Listen auf eine einheitliche Datenbank migriert werden sollen, gilt es jetzt die beiden Listen, die jeweils nur den Namen der Schallplatte als Schlüssel nutzen, abzugleichen. Weder die Liste von Frau A noch die Liste von Herrn B ist vollständig, jede Schallplatte ist jedoch nur einmal vorhanden, rein manuelle Kontrolle scheidet aus da a) zuviele Schallplatten vorhanden sind und b) bei der Kontrolle selbst Fehler gemacht werden können. Ziel ist daher, zusätzlich zur manuellen Kontrolle eine Unterstützung zu suchen, die die wahrscheinlich identischen Einträge hervorhebt.

Mein erster Ansatz war, die beiden Listen zusammen in einem Excel-Sheet zu speichern und jeweils zu speichern, ob der Eintrag aus der Liste von Frau A oder Herrn B stammt. Dann wurde die Liste aufsteigend sortiert, das Ergebnis war, dass von zwei Einträgen, die sich nur am Ende unterscheiden, der kürzere Eintrag vor dem längeren steht.

  • Sinead O’Connor – I Do Not Want What I Haven’t Got
  • Sinead O’Connor – I Do Not Want What I Haven’t Got (Single)

Der nächste Schritt war dann für jede Zelle zu entscheiden, ob der Zellinhalt Teil der darauffolgenden Zelle war. Dazu wurde die Finden() Funktion von Excel genutzt.

  • Sinead O’Connor – I Do Not Want What I Haven’t Got
  • Sinead O’Connor – I Do Not Want What I Haven’t Got (Single)

Einen Großteil der doppelten Einträge kann man auf diese Weise abdecken, doch versagt er bei geringsten Schreibfehlern, wie dem folgenden:

  • Sinead O’Connor – I Do Not Want What I Haven’t Got
  • Sinead OConnor – I Do Not Want What I Haven’t Got (Single)

Diese lassen sich per zeichenweisem Vergleich ermitteln. Sauber wäre eine Lösung die nur die tatsächlichen Längen berücksichtigt, als ersten Wurf habe ich jedoch einfach die Zeichen 1 bis 15 miteinander verglichen (Formel wird nachgeliefert).

Dann zählt man einfach die Anzahl der Zeichen, die unterschiedlich sind, bei geringen Abweichungen ist die Wahrscheinlichkeit hoch, einen identischen Eintrag zu haben. Eine Erweiterung dieses Konzept ist die sogenannte Levenshtein-Distanz, die ich über ein R Skript berechnen lasse.

Der Wert der Levenshtein-Distanz gibt dabei an, wieviele Zeichen man minimal ändern muss, um von String A auf String B zu kommen. Für die beiden Zeichenketten „Hello“ und „Hallo“ ist der Wert daher 1.

Über ein kurzes R-Skript lese ich die Plattennamen ein und mache jeweils einen paarweisen Vergleich, der R-Code für die Levenshtein Distanz entstammt dem R-Wiki http://wiki.r-project.org/rwiki/doku.php?id=tips:data-strings:levenshtein

data<-readLines("c:/music_names.dat")
y<-length(data)
result<-1:y
 
for(i in 2:y){
	result[i]<-levenshtein(data[i],data[i-1],case=FALSE) 
}
write.table(result, "C:/result.dat")

Den result-Vektor können wir dann in das Excel-Sheet einfügen.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website