noch zwei Vorschläge < Verbesserungen < Internes < Vorhilfe
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:17 Di 01.11.2005 | Autor: | Bastiane |
Hallo Marc!
Noch zwei Vorschläge bzw. eine Frage, ob so etwas evtl. machbar wäre:
Es kommt doch schon mal öfter vor (in letzter Zeit finde ich es sehr häufig), dass die gleichen Fragen mehrmals gestellt werden, vermutlich die gleiche Uni und das gleiche Übungsblatt... Einmal die Frage, ob dir nicht etwas Gescheites einfällt, wie man als Fragesteller vorher leicht feststellen kann, ob seine Frage hier schon gestellt wurde. Mir fällt da bisher nur ein, dass man irgendwie Unter-Rubriken machen könnte, wo man angibt, welche Uni, welche Vorlesung. Oder wir teilen es allgemein auf in "die ersten Anfängerfragen" und Ähnliches (weiß gerade nicht, in wie weit demnächst eh schon differenziert wird, evtl. reicht das dann sogar schon). Mit dieser Idee bin ich allerdings nicht so wirklich zufrieden.
Und dann die Frage, ob es irgendwie möglich wäre, eine Suche zu programmieren, die komplette Aufgaben sucht. Und zwar hatte ich gerade zweimal das Problem, dass ich mir ziemlich sicher war, dass die Frage vor kurzem erst hier gestellt wurde, und zwar höchstwahrscheinlich im selben oder zumindest sehr ähnlichen Wortlaut (evtl. sogar von der selben Person). Leider habe ich in dem einen Fall die Frage irgendwie nicht gefunden, da ich mir auch nicht so sicher war, in welchem Forum ich sie jetzt suchen soll. Könnte man da eine Suche machen, die so etwas findet? Oder wäre das zu umständlich oder würde den Server zu sehr belasten?
Viele Grüße
Bastiane
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:52 Di 01.11.2005 | Autor: | Karl_Pech |
> Bei den vielen täglichen Beiträgen hier im Forum wäre das
> aber wohl doch ein utopischer Gedanke, weil der Server für
> jeden Beitrag den kompletten MR durchsuchen müßte.
... ein kleines Spinnenprogramm (wie bei den großen Suchmaschinen) würde den MatheRaum zu Zeiten, wo dieser am schlechtesten besucht ist (ich nehme an ab 3:00 Uhr in der Nacht ist hier nicht (mehr) so viel los, oder?), nach ähnlichen Beiträgen für die Beiträge der letzten 24 Stunden durchsuchen. Das könnte es wenn nötig, die ganze Nacht hindurch tun.
Findet die Spinne z.B. einen Artikel, der mit dem Aktuellen zu 99 % übereinstimmt (also eine sehr lange gemeinsame Teilsequenz), würde das Programm den Link zum ähnlichen Artikel in das Logbuch des aktuellen Artikels eintragen. Wenn man dann am Tage nach ähnlichen Artikeln suchen will, und auf "MR nach ähnlichen Beiträgen durchsuchen" klickt, braucht nur noch die in der Nacht fertig aufbereitete Seite aufgerufen zu werden. Dieser Ansatz der Indizierung würde also dazu führen, daß der MR auch bei Stoßzeiten noch durchsuchbar wäre.
Die Spinne müßte bei ihrer Suche wohl auch nicht für jeden Artikel jedesmal alle anderen Artikel des MR durchzusuchen. Ist nämlich ein Artikel einem anderen ähnlich, so müßte er auch automatisch eine Ähnlichkeit mit Artikeln aufweisen, die dem Ähnlichen ähnlich sind (Rekursion). Die Spinne würde also einfach durch die Logbücher sämtlicher ähnlicher Artikel laufen (u.s.w.). Jeder durchforstete Artikel würde dann als durchsucht markiert werden.
Okay, ich glaube das Ganze wird jetzt doch "ein klein Wenig" kompliziert.
Grüße
Karl
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:48 Di 01.11.2005 | Autor: | Marc |
Hallo Bastiane, hallo Karl!
ich wäre sehr an der Implementation eines "Übereinstimmungsalgorithmus" interessiert !
Also, wer Lust hat, würde mir einen grossen Gefallen damit machen.
Den Teilsequenzalgo von Karl halte ich aber für nicht so geeignet, da wegen Tippfehlern, Formatierungen etc. die Erfolgsquote recht niedrig liegen dürfte.
Früher hatte ich mir auch schon Gedanken dazu gemacht (als ich einen Cross-Posting-Automaten haben wollte, der erkennen sollte, ob eine Frage bereits auf einer anderen Internetseite gestellt wurde), über folgende Planung ist es aber nie hinaus gekommen:
Zunächst bereinige ich die zu vergleichenden Artikel A und B von Formattierungen und Whitespace. Dann zerlege ich Artikel A und B in Listen von Wörtern.
Dann wollte ich die beiden Listen (ähnlich dem Teilsequenzalgo von Karl) vergleichen und eine möglichst lange Folge von Wörtern finden, die in beiden Listen vorhanden sind, dabei aber eine Fehlerrate von sagen wir 1 nicht übereinstimmendem Wort pro 10 Wörter finden.
Je länger diese Wortsequenz und je geringer die Rate von Störwörtern desto größer die Übereinstimmung der Artikel.
Traut sich jemand zu, das oder etwas besseres in Python zu programmieren?
Viele Grüße
Marc
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:17 Di 01.11.2005 | Autor: | Karl_Pech |
Hallo Marc,
> Den Teilsequenzalgo von Karl halte ich aber für nicht so
> geeignet, da wegen Tippfehlern, Formatierungen etc. die
> Erfolgsquote recht niedrig liegen dürfte.
Kannst Du das an einem Beispiel belegen?
> Zunächst bereinige ich die zu vergleichenden Artikel A und
> B von Formattierungen und Whitespace. Dann zerlege ich
> Artikel A und B in Listen von Wörtern.
> Dann wollte ich die beiden Listen (ähnlich dem
> Teilsequenzalgo von Karl) vergleichen und eine möglichst
> lange Folge von Wörtern finden, die in beiden Listen
> vorhanden sind, dabei aber eine Fehlerrate von sagen wir 1
> nicht übereinstimmendem Wort pro 10 Wörter finden.
> Je länger diese Wortsequenz und je geringer die Rate von
> Störwörtern desto größer die Übereinstimmung der Artikel.
Ich verstehe nicht, warum Du dir soviel Mühe mit diesen Vorverarbeitungen machst. Der dynamische LCS-Algorithmus, den wir in der Vorlesung kennengelernt haben, macht das doch alles automatisch. Du zerlegst beide Artikel in zwei Listen von Zeichen (nicht bloß Wörtern). Und dann wendest Du einfach den Algorithmus an. Der Algorithmus funktioniert so, daß er sowieso alle Zeichen, die nicht in einem Artikel enthalten sind, übergeht. Wozu dann noch die Vorverarbeitungen? Für diesen Algorithmus wäre es egal, ob er es mit der Zeichenkette a §"$§$ bb !!!! a oder abba zu tun hat. Das Ergebnis wäre abba. Also 100% Übereinstimmung im Sinne des LCS-Algorithmus natürlich.
> Traut sich jemand zu, das oder etwas besseres in Python zu
> programmieren?
Warum das Rad neu erfinden, wenn es inzwischen Flugzeuge gibt?
Viele Grüße
Karl
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:38 Di 01.11.2005 | Autor: | Marc |
Hallo Karl!
Ich habe den LCS wohl falsch verstanden!
> > Den Teilsequenzalgo von Karl halte ich aber für nicht so
> > geeignet, da wegen Tippfehlern, Formatierungen etc. die
> > Erfolgsquote recht niedrig liegen dürfte.
>
>
> Kannst Du das an einem Beispiel belegen?
Naja, ich dachte an
A: Hallo wie geht es dir, Karl?
B. Hallo wie geht's, Karl?
Ich dachte, der LCS würde dann liefern:
"Hallo wie geht"
und nicht
"Hallo wie gehts, Karl" (nehme ich an, dass er das liefert, nach deinem unten gesagten).
> > Zunächst bereinige ich die zu vergleichenden Artikel A und
> > B von Formattierungen und Whitespace. Dann zerlege ich
> > Artikel A und B in Listen von Wörtern.
> > Dann wollte ich die beiden Listen (ähnlich dem
> > Teilsequenzalgo von Karl) vergleichen und eine möglichst
> > lange Folge von Wörtern finden, die in beiden Listen
> > vorhanden sind, dabei aber eine Fehlerrate von sagen wir 1
> > nicht übereinstimmendem Wort pro 10 Wörter finden.
> > Je länger diese Wortsequenz und je geringer die Rate
> von
> > Störwörtern desto größer die Übereinstimmung der Artikel.
>
>
> Ich verstehe nicht, warum Du dir soviel Mühe mit diesen
> Vorverarbeitungen machst. Der dynamische LCS-Algorithmus,
> den wir in der Vorlesung kennengelernt haben, macht das
> doch alles automatisch. Du zerlegst beide Artikel in zwei
Schon, aber Silben sind nun mal die Bestandteile der Sprache, da sind ganze Wörter näher dran als Zeichen.
> Listen von Zeichen (nicht bloß Wörtern). Und dann wendest
> Du einfach den Algorithmus an. Der Algorithmus funktioniert
> so, daß er sowieso alle Zeichen, die nicht in einem Artikel
> enthalten sind, übergeht. Wozu dann noch die
> Vorverarbeitungen? Für diesen Algorithmus wäre es egal, ob
> er es mit der Zeichenkette a §"[mm]§[/mm] bb !!!! a
> oder abba zu tun hat. Das Ergebnis wäre abba. Also 100%
> Übereinstimmung im Sinne des LCS-Algorithmus natürlich.
Okay, ich hatte es eben so verstanden, dass er die größte übereinstimmende und zusammenhängende Zeichenkette finden soll.
> > Traut sich jemand zu, das oder etwas besseres in Python zu
> > programmieren?
>
>
> Warum das Rad neu erfinden, wenn es inzwischen Flugzeuge
> gibt?
Kennst/Hast du eine Implementation des LCS-Algos? Man könnte es ja mal damit ausprobieren.
Vielen Dank aber schon mal für den Hinweis,
Marc
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:23 Di 01.11.2005 | Autor: | Karl_Pech |
Hallo Marc,
Ich habe dir soeben etwas per E-Mail geschickt.
Grüße
Karl
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:08 Di 01.11.2005 | Autor: | Marc |
Hallo Karl,
> Ich habe dir soeben etwas per E-Mail geschickt.
Vielen Dank!
Ich habe es nun bereits implementiert
Ich werde es gleich im Devel-Forum mal vorstellen.
Viele Grüße,
Marc
|
|
|
|