Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

meintestDU "welches Keyword hätt ich gern"?

Das Board für die kleine Abwechslung. Hast Du was lustiges im Web gefunden oder was offtopic dann hier rein!
800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 10.06.2008, 15:13

Hasenhuf hat geschrieben:
800XE hat geschrieben:jetzt mit Filter Nummer 5
Wie was? Was ist Filter oder Schritt eins bis fünf?

PS: Schar und Arsch sind nach deinem Algo ähnlich.
Schrit bzw Filter 1 bis 5

#1
meintest Du? (dreher) ··· WHERE word_abcount = 5
=Wörter mit 5 Buchstaben
=findet Buchstabendreher

#2
meintest Du? (Char fehlt) ··· WHERE word_abcount = 6
=Wörter mit 6 Buchstaben
=matche ob Buchstabe vergessen wurde

#3
meintest Du? (and more z.B. Char zuviel) ··· WHERE word_abcount = 5
=wieder Wörter mit 5 Buchstaben
aber im Gegensatz zu #1 müßen diese nicht exakt wie im Suchwort sein
in DB 'Andy' gesucht 'Andi'
beide 4 Chars aber nur 3 identisch
#1 fürde 'Andy' nicht finden

#4
meintest Du? ( make strcmp ) ··· WHERE

#5
so, und ich glaube du meinstest zu soundsoviel %
= and the Winner is


Der "Schar" der "Arsch" ....
.... sind nicht ähnlich, mathematisch sind sie exakt gleich
5Buchstaben
1xA
1xC
1xH
1xS
1xR
(ist das jetzt alphaOrder?)
ich sag hier mal noch ..... "Arrrrrrch" oder "Schaar((wurde ja irgendwo gefunden) ist auch mathematisch exakt gleich
da eben nicht
6xR
sondern
TRUE @ A C H S R
bzw
A C H S R = TRUE

und die 100% in meiner aktuellen "Nummer 5"
ähm ja, bei den Beispielen taugt die garnix

Arsch = 100% rasch ..... hat wohl Durchfall :D
Schar = 100% scharf ..... Harem ich komme ....

Diese "falschen" Ergebnisse kommen jetzt ganz einfach dadurch ....
... es waren richtige Wörter .... für die braucht man keine Alternativen such .... eine Alternative für ein richtiges Wort kann ja quasie nur ein falsches Wort ergeben .... also sind die falschen Wörter richtig, obwohl sie es nicht sind ... (das war jetzt etwas gekreisters Quadraht, bitte wieder vergessen)

würde ich hier bei Schritt #1 einen !strcmp auf die gefundenen machen .... würde ich bei einem Wort feststellen das es unnötig ist "meinten Sie" zu fragen

es geht ja darum
Wort wurde gesucht ....
» Wort wurde nicht gefunden
» Wort suchen das gefunden werden kann
» ermitteln welches dieser Wörter wohl das eigentlich gesuchte war

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 10.06.2008, 16:39

Hasenhuf hat geschrieben:Erkläre doch noch mal in möglichst klaren Sätzen, was Du willst und was Du bisher machst.
Was ich will ....... viele große Computer, für viel Platz um das internet abzuspeichern ...... um Google abzulösen

das wollten schon einige, die wurden dann auch hier im Forum zerrisen (auch von mir)
ihr braucht mich nicht zerreisen, das mach ich schon selbst .... habe keine TeraBytes, haben keinen Algo ... ein klein Wenig hab ich schon .... die Suchfuktion in www.shop800.de/Artikelsuche/ aktuell hab ich da einen ähm index ... Wörtersamlung .... mit 800ooo Wörtern

Und nu will ich, wenn einer was will
und ich finde sein gesuchtes Wort nicht ... versuchen rauszufinden ob er ein Anderes Wort meinte ....
... Nummer2 ... Wörter die zwar zu finden sind, aber in Anderer Form ...
... z.B. mp3Player wird gesucht und nicht gefunden .... ich zerhacke und finde "mp3 Player"

habe die MeintenSie jetzt verlagert ....
https://webtools.chegu.de/meintestDu.ht ... iga&doit=1
der Amiga wurde gefunden .... kein Schrit2 ... 3 ....
weil 2 und 3 und 4 und 5 nicht nötig gibts einen 2ten Buton(gibts am Anfang nicht) [i haven't done?]
... ist das richtigies English .... 4.... ich habe es nicht getan(das was du wolltest, Alternativen suchen)?
https://webtools.chegu.de/meintestDu.ht ... a&domore=1
hier hab ich Glück und er entscheidet sich auch für Amiga ....
... das letzte Unten, das prüft nehmlich absolut nicht auf Ähnlichkeit
Filter 5 aktuell:
Die Wörter aus 1 + 2
nach Filter 4= strcmp linkehälfte und rechtehälfte ... eine muß matchen
Suchen und zählen wie oft sie irgendwo vorkommen .... deswegen auch der "Fehler" mit Schar+Arsch ... scharf ist eben in vielen Texten drin, öfter wie Schar ....

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 10.06.2008, 16:49

Hasenhuf hat geschrieben:Oder Du gehst mal die Flexionen eines Wortes durch, z.B. die Konjugation eines unregelmäßigen Verbes., um es deutlichzumachen.
https://de.wiktionary.org/wiki/gehen_%28Konjugation%29

ging -> gin
gegangen -> aegn
also, von ging ... gegangen, er ging .....
diese umformungen die kommen erst viel viel viel viel später

Deine zwei Wörter wurden jetzt natürlich gefunden .... kein Schritt 2 ....
erwingt man 2, 3, 4, 5
wird
ging -> Ring
gegangen -> langen

für die "meinten Sie" gibt es hier nichts zu tun .... da die Wörter ja in Schritt 1 gefunden
aber für Andere Anwendungsfälle ..... jo, es gibt noch viel zu tun

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 10.06.2008, 17:08

Hasenhuf hat geschrieben:Oder Du gehst mal die Flexionen eines Wortes durch, z.B. die Konjugation eines unregelmäßigen Verbes., um es deutlichzumachen.
https://de.wiktionary.org/wiki/gehen_%28Konjugation%29
https://de.wiktionary.org/wiki/rei%C3%9 ... ugation%29
aua, mein Kopf ..... so viele komplizierte Wörter ..... aua

Tapetum
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 19.08.2005, 09:29
Wohnort: Berlin

Beitrag von Tapetum » 10.06.2008, 17:35

vor 2 oder 3 Wochen hatte ich eine Idee dieses "meinten sie" nachzubauen

Hab da mal was gesehen. Ich glaube, das könnte dich interessieren (etwa ab Min. 31:30):

https://www.youtube.com/watch?v=2GtgSkmDnbQ

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 10.06.2008, 21:38

@ 800XE, ich zerbreche mir hier den Kopf aber verstehe das nicht. Ich glaube Du hast einiges weggelassen. Bevor ich mir sinnlos Gedanken mache ein paar Fragen:

1. Werden die Schritte 1 bis 4 immer alle ausgeführt und dann Schritt 5? Oder nur alle Schritte bis bei einem Schritt ein oder mehr Treffer gelandet werden und dann Schritt 5? Und wie ist Treffer definiert? Was machst Du mit den Wörtern, die die gleiche Buchstabenanzahl haben?

2. Wieso wird 'Andy' in #1 nicht gefunden in #3 aber schon? Findet außer dem Vergleich der Buchstabenzahl noch was anderes statt? Wenn ja, was?
800XE hat geschrieben:Der "Schar" der "Arsch" ....
.... sind nicht ähnlich, mathematisch sind sie exakt gleich
5Buchstaben
1xA
1xC
1xH
1xS
1xR
Da Du weißt, daß dein Algo keine Gleichheit von Wörtern bestimmen kann, dachte ich, Du würdest die exakte Übereinstimmung deines "Hashes" lediglich als höchste Ähnlichkeit ansehen.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 11.06.2008, 00:23

Hasenhuf hat geschrieben:@ 800XE, ich zerbreche mir hier den Kopf aber verstehe das nicht. Ich glaube Du hast einiges weggelassen. Bevor ich mir sinnlos Gedanken mache ein paar Fragen:
Was ich weggelassen habe ist, woher bekomme ich die Treffer, wie ermittle ich sie .... wie lautet der SQLquery für #1 #2 #3


Ich habe eben "Armageddon" gesucht .... absichtlich falsch ohne "r"
"Amagedon" .... du siehst das ich hinten nur 1 d .... was auch falsch ist

deswegen fand #5 nichts, weil #4 nichts mehr zum Arbeiten hat

Amag != Armag
edon != eddon
midest eines der beiden müßte aber matchen um durch #4 durchzukommen .... also, aktuelle #4 ist Schrott
Hab Gedanklich schon was Anderes ....
gesuchehterString mit gefundenem Char by Char vergleichen und irgendwie vermerken wenn die Anzahl hintereinanderstehender unterschidlich ist oder in einem ein zusätzlicher drin ist ....
... geh ich jetzt in Richtung SoundEX .... neh, dort werden nehmlich vorhandene "gelöscht" sind unbeachtet ....

Hasenhuf hat geschrieben:1. Werden die Schritte 1 bis 4 immer alle ausgeführt und dann Schritt 5? Oder nur alle Schritte bis bei einem Schritt ein oder mehr Treffer gelandet werden und dann Schritt 5? Und wie ist Treffer definiert? Was machst Du mit den Wörtern, die die gleiche Buchstabenanzahl haben?
aktuell .... wenn #1 erfolgreich dann ende .... wenn User mehr will, gibts den zeiten [Button] um #2 #3 ... zu erzwingen ....

.... ja, aktuell wird immer alles gemacht
#3 ist aber unnötig weil nicht zur weiterverarbeitung genutzt

Gefundene Wörter von #1 und #2 gehen in die #4
https://webtools.chegu.de/meintestDu.ht ... n&domore=1
erzwungene weiterverarbeitung weil Armageddon richtig ist

#1 = meintest Du? (dreher) = findet 7 Wörter
#2 = meintest Du? (Char fehlt) = findet 50 Wörter
#3 .... wie gesagt .... nur da weil beim Test auch mal #2 nix lieferte ... derzeit keine Verwengung für die Ergebnisse
#4 ... 7 Wörter aus #1 und 50 aus #2 .... irgendwie schint ein Wort in beiden vorzukommen, welches durch #4 entvernt wird ..... bleiben 56 Wörter
57 »doubletten delete» 56
#4 zerhackt jetzt das Suchwort in der Mitte und metcht es mit den gefundenen ... vorderteil und hinterteil ... midestens einer muß stimmen
es bleiben 3

#5 die übriggeblibenen 3 Wörter, die werden jetzt in meinem AffiliateSuchindex abgefragt .... wie viele Suchtreffer gibt es dafür ...

domain.tld/?wortcount=Armageddon,Harmageddon,Wormageddon
77 mal
Armageddon
0 mal
Harmageddon
0 mal
Wormageddon
77max
READY....

hm, da hab ich jetzt ein Beispiel mit veralteten Artikeln ... = die Suchtreffer gibts nicht mehr = 0
unten als Abschluß kommt "Ready" und zufor die höchste Trefferzahl .... die nehm ich dann als 100%Marke ...... das kann so aber wohl nicht bleiben .....
.... auser die zukünftige #4 liefert besseres so das jetzige #5 so bleiben kann
Hasenhuf hat geschrieben:2. Wieso wird 'Andy' in #1 nicht gefunden in #3 aber schon? Findet außer dem Vergleich der Buchstabenzahl noch was anderes statt? Wenn ja, was?
#1 = meintest Du? (dreher) WHERE word_abcount = 4
#2 = meintest Du? (Char fehlt) WHERE word_abcount = 5

word_abccount .... wortlänge .... abc count (c doppelverwendet .. abc + count)

word_abcount = der strlen von meinem alpaorderet
andy .... = adny = 4
andi .... = adni = 4
Tastatur = arstu = 5

aber, wie gesagt, das adny oder adni wird nicht weiterverwendet ....
... ist ein Nebenprodukt vom füllen der SQL

Code: Alles auswählen

$alpha= strtolower( $query );
// bei mir hl2fn = headline2filename 
// = Ümlate in ue ae oe umwandlung mit drin

    $i=ord('a')-1;
    $alphas=0;
    while&#40;$i++<ord&#40;'z'&#41;&#41;
    &#123;
      $c=chr&#40;$i&#41;;
      if &#40; strpos&#40;' '.$alpha,$c&#41; &#41;
      &#123;
        // gefundene Chars in einen SQL WHERE ....
       $alphas++;
      &#125;
    &#125;
armageddon hat als $alphas==8
obwohl strlen( armageddon )==10

wieder zum andy vs andy
#1 = meintest Du? (dreher) WHERE word_abcount = 4
Wörter die im alphaORDERETstr so lange sind wie das gesuchte Wort
········ WHERE $alphas==4 && die Chars A+n+d+y ....

#2 = meintest Du? (Char fehlt) WHERE word_abcount = 5
Wörter die im alphaORDERETstr ein zeichen länger wie das gesuchte Wort
········ WHERE $alphas==5 && die Chars A+n+d+y ....
falsch Andy wird in #2 nicht gefunden .... in #3 wird es gefunden ....
in #3 gilt wieder $alphas==gesucht wie gefunden .... aber das Charmatch ist nicht so strickt
von den 4 müßen nur 3 stimmen
aber die #3 ist nicht gut wie sie jetzt ist .... braucht zu viel Rechenzeit

für Andi vs Andy sollte ich doch mal soundex .....
.... beide A530 .... rückwerts i350 bzw y350 ....
Andreas = A536 .... nahe an A530 ..... hm .....

mal schauen ....
... die #3 dahingehend ändern das sie wie die #2 aber eben mehrfach, immer mir einem Buchstaben zu wenig um sich dann eventuell mit einem vertipperChar zu korekturErgenzen ....
.... und dann, oder schon vorher, einen soundex abmatchen
Hasenhuf hat geschrieben:
800XE hat geschrieben:Der "Schar" der "Arsch" ....
.... sind nicht ähnlich, mathematisch sind sie exakt gleich
5Buchstaben
1xA
1xC
1xH
1xS
1xR
Da Du weißt, daß dein Algo keine Gleichheit von Wörtern bestimmen kann, dachte ich, Du würdest die exakte Übereinstimmung deines "Hashes" lediglich als höchste Ähnlichkeit ansehen.
schub und Busch ...... da haben wir noch so zwei

für meinen Algo, wenn man das so nennen kann,
sind die zwei Wörter erstmal absolut identisch
also, für #1 #2 #3 .... = SQL abfrage
#4 ist dann PHP mit einem strcmp




ich glaub ich schau mir doch mal soundex an
...

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 11.06.2008, 00:36

800XE hat geschrieben:Ich habe eben "Armageddon" gesucht .... absichtlich falsch ohne "r"
"Amagedon" .... du siehst das ich hinten nur 1 d .... was auch falsch ist

deswegen fand #5 nichts, weil #4 nichts mehr zum Arbeiten hat

Amag != Armag
edon != eddon
midest eines der beiden müßte aber matchen um durch #4 durchzukommen .... also, aktuelle #4 ist Schrott
hab jetzt mal Armagedon durch soundex ..... interesannt, sehr interessant

#Armageddon#A652#noddegamrA#N325
#Armagedon#A652#nodegamrA#N325
#Amagedon#A523#nodegamA#N325

also, nur Vorwärts hätts mich nicht weiter gebracht
aber wenn ich zusätzlich revers .... dann matcht es perfekt

Code: Alles auswählen

  $test='Armageddon'; echo&#40;'<br>#'.$test.'#'.soundex&#40;$test&#41;.'#'&#41;;
$test=strrev&#40;$test&#41;;echo&#40;$test.'#'.soundex&#40;$test&#41;&#41;;
  $test='Armagedon'; echo&#40;'<br>#'.$test.'#'.soundex&#40;$test&#41;.'#'&#41;;
$test=strrev&#40;$test&#41;;echo&#40;$test.'#'.soundex&#40;$test&#41;&#41;;
  $test='Amagedon'; echo&#40;'<br>#'.$test.'#'.soundex&#40;$test&#41;.'#'&#41;;
$test=strrev&#40;$test&#41;;echo&#40;$test.'#'.soundex&#40;$test&#41;&#41;;
hab jetzt nur ein Problem .... ich weis nicht warum ... warum matcht es rückwerts 3fach

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 15.06.2008, 19:49

Bezogen auf die Buchstabenzählerei:
Um es mir einfacher zu machen, definiere ich im folgenden einfach welche Wörter es gibt mit einem Stern * und welche Wörter falsch geschrieben sind mit zwei Sternen **.

Du triffst eine Vorauswahl anhand der Anzahl der vorkommenden verschiedenen Buchstaben.
- Gesucht wird nach Büchse** (gemeint war Büchs*), es existiert auch Büchte*. Du vermutest einen Buchstabendreher und kommst mit 100% zu Büchs*. Büchte* prüfst Du gar nicht erst.

- Gesucht wird nach Büchtebucht** (gemeint war Büchtebuchta*), es existiert auch Büchte*. Du kommst mit 100% zu Büchte*. Angenommen es ist sinnvoll eine Vorauswahl anhand von Buchstabenanzahlen zu treffen, dann wäre strlen +-x und/oder +-y% sinnvoller. Mit strlen wärst Du wahrscheinlich zu Büchtebuchta gekommen und hättest Büchte ausgeschlossen.

Deine Zählart hat nur dann Vorteile (ohne die Nachteile zu verlieren), wenn man vermutet, daß jemand viel mehr Buchstaben verwendet, die ohnehin schon vorkommen. Nur wer sucht nach Bücccccccccccccchte wenn er Büchte meint?

Nach wie vor ist für mich aber fraglich, welchen effektiven Vorteil eine Vorauswahl nach Buchstabenanzahlen haben soll.
800XE hat geschrieben:hab jetzt mal Armagedon durch soundex ..... interesannt, sehr interessant

#Armageddon#A652#noddegamrA#N325
#Armagedon#A652#nodegamrA#N325
#Amagedon#A523#nodegamA#N325

also, nur Vorwärts hätts mich nicht weiter gebracht
aber wenn ich zusätzlich revers .... dann matcht es perfekt
...
hab jetzt nur ein Problem .... ich weis nicht warum ... warum matcht es rückwerts 3fach
Schau Dir an, wie soundex gebildet wird, dann ist der Grund offensichtlich. Dann wird Dir auch klar, das Du dich nicht einfach 1:1 auf den Hash verlassen kannst, gerade bei Fehlern beim Anfangsbuchstaben.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 15.06.2008, 21:21

Hasenhuf hat geschrieben:Schau Dir an, wie soundex gebildet wird, dann ist der Grund offensichtlich. Dann wird Dir auch klar, das Du dich nicht einfach 1:1 auf den Hash verlassen kannst, gerade bei Fehlern beim Anfangsbuchstaben.
Habs mir eben nochmal angeschaut ....
... es gibt am Ende 3Ziffern ... 1...6 .... da bleibt wirklich nicht viel ....

und eine "ungenauer" vergleich auf ähnlichkeit danach ist auch unlogisch
Beispiel
ich hab 800ooo Wörter in DB mit soundex Zahl(nur die Zahl, ohne ANfangsbuchstabe)
ein SELECT finde>=gesucht-5 AND finde>=gesucht+5
bringt ja nich

es werde es aber trotzdem mal im Auge behalten
Hasenhuf hat geschrieben:Nach wie vor ist für mich aber fraglich, welchen effektiven Vorteil eine Vorauswahl nach Buchstabenanzahlen haben soll.
ich bin gerade intensiv an einem Anderen Script .... am rollout, wie man es nennt

mein Filter 5 ..... der ist schrott
Wort halbiren udn linke+rechte hälfte vergleichen ..... das taugt nix, absolut nix .....
Hasenhuf hat geschrieben:Vorauswahl nach Buchstabenanzahlen
bitte bitte, ich sagte es schon ......
.... ich zähle keine Buchstaben, ich prüfe auf existens

Das da eine "Anzahl" abgefragt wird, das dient nur zur goben minimierung der 800ooo Datenzeilen

Ich suche "Auto" = 4 Buchstaben
also alle Datensätze mit 4 Buchstaben

837,562 Gesamt
32,172 Wörter mit abccount=4
17,949 Wörter mit strlen =4
in kombi = 13,259

Wörter die A+u+t+o enthalten
5 ... AND abcount=4 AND strlen=4
13 ... AND abcount=4
5 ... AND strlen=4

wobei ich die "strlen" Spalte nicht abfrage ... sollte ich aber vielleicht mal tun


---selfquote------
Das da eine "Anzahl" abgefragt wird, das dient nur zur goben minimierung der 800ooo Datenzeilen
----------------
korrektur .... es geht eigentlich darum das dadurch auf "nixtexistens" der Buchstaben die nicht auf "existens" geprüften wurden, geprüft wird

Gruß
Andy 800XE Zmuda
das längste "Wort" hat strlen=80 und abc=20
der größte abcount ist 22 nicht 26

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 16.06.2008, 09:34

800XE hat geschrieben:bitte bitte, ich sagte es schon ......
.... ich zähle keine Buchstaben, ich prüfe auf existens

Das da eine "Anzahl" abgefragt wird, das dient nur zur goben minimierung der 800ooo Datenzeilen
Das habe ich verstanden. Ich denke aber, meine Argumente, gegen deine Zählweise sind nicht von der Hand zu weisen (siehe Beispiel Büchtebucht**, Büchtebuchta*, Büchte*), falls man diese Art der Datenreduzierung betreibt.

Ich habe ja auch keine Lösung für dein Problem, was ich kann, ist auf Probleme und Möglichkeiten hinzuweisen.

Ich hätte als erstes etwas in der Art versucht:
Eingabe Auta:
... LIKE %uta AND ... A%ta ... Au%a ... Aut%
Damit erschlägst Du einen fehlenden Buchstaben (Ato), einen Buchstabendreher (Stellung: Auot und falscher Buchstabe: Audo) und beliebig zu viele Buchstaben (Autotttttttt) an einer Stelle. Es kann sogar zusammengesetzte Wörter finden (Autohaus), wenn man nicht auch noch parallel auf die Buchstabenanzahl achtet. Fehler an mehr als einer Stelle werden aber nicht erkannt. Was die Performance angeht habe ich aber keine genaue Vorstellung.

Bei der Berücksichtigung von Fehlern an mehreren Stellen steigt bei Wörtern ab einer gewissen Länge der Aufwand überproportional um dann wieder kleiner zu werden.
Eingabe Atua (Dreher plus falscher Buchstabe):
... LIKE ... %%ua ... %t%a ... %tu% ... A%%a ... A%u% ... At%% (Doppelte % sind sinnlos, ich habe sie nur für die Anschaulichkeit drin gelassen)
Ergebnis: A%u% paßt aus Auto
Beim drei vermuteten Fehlern, bei einem Wort mit vier Buchstaben, bleibt nur noch je ein Buchstabe übrig (der Aufwand sinkt wieder).
%A% ... %t% ... %u% ... %a% (%a% kann man sich wegen %A% sparen, wenn die Spalte nicht binär ist) was natürlich auf eine Menge paßt.

PS.: Das womit ich mich beschäftige spielt sich auf ähnliche Weise ab, nur auf Wortebene und mein Ergebnis soll eine Wortgruppe sein. Die größten Unterschiede sind, daß ich auch andere Wortstellungen zulasse (Beispiel: "ich gehe jetzt" und "jetzt gehe ich"), dafür aber noch weit weniger als 800000 Datensätze habe. Anfangs habe ich aber auch viel auf Buchstabenebene versucht und meiner Erfahrungen gesammelt.

Mein erster Reduzierungsschritt geht über das Vorkommen der Wörter aus der Eingabe. Der Vorteil meiner Aufgabe gegenüber deiner Aufgabe liegt darin, daß es viel mehr unterschiedliche Wörter als Buchstaben gibt und das Wörter eine reduzierte Anzahl an Bedeutungen haben. Meine Methode taugt daher nicht für deine Aufgabe.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 16.06.2008, 12:16

Hasenhuf hat geschrieben:
800XE hat geschrieben:bitte bitte, ich sagte es schon ......
.... ich zähle keine Buchstaben, ich prüfe auf existens

Das da eine "Anzahl" abgefragt wird, das dient nur zur goben minimierung der 800ooo Datenzeilen
Das habe ich verstanden. Ich denke aber, meine Argumente, gegen deine Zählweise sind nicht von der Hand zu weisen (siehe Beispiel Büchtebucht**, Büchtebuchta*, Büchte*), falls man diese Art der Datenreduzierung betreibt.

Ich habe ja auch keine Lösung für dein Problem, was ich kann, ist auf Probleme und Möglichkeiten hinzuweisen.

Ich hätte als erstes etwas in der Art versucht:
Eingabe Auta:
... LIKE %uta AND ... A%ta ... Au%a ... Aut%
Damit erschlägst Du einen fehlenden Buchstaben (Ato), einen Buchstabendreher (Stellung: Auot und falscher Buchstabe: Audo) und beliebig zu viele Buchstaben (Autotttttttt) an einer Stelle. Es kann sogar zusammengesetzte Wörter finden (Autohaus), wenn man nicht auch noch parallel auf die Buchstabenanzahl achtet. Fehler an mehr als einer Stelle werden aber nicht erkannt. Was die Performance angeht habe ich aber keine genaue Vorstellung.
---- requote -- letzte Zeile ---
Was die Performance angeht habe ich aber keine genaue Vorstellung.
---------------------------------------

dieses LIKE %uto AND
das wird eine Performenc Katastrope .... es würden alle 800ooo Wörter geprüft werden müßen

Konkretes Beispiel ... als mein AffiliateShop an die 1.ooo.ooo Artikel ging, oder bei 1.4 Mill ....
da dauerte die Startseite, die die neusten Artikel listete .....
.... die brauchte 20 ...30 ...40 ... 60 ... 80 .... Sekunden oder der Browser meldete einen Timeout

phpmyAdmin .... In dex auf "ts" = InsertTimestamp
Ergebniss: Startseite 0.5 Sekunden .. Hallo da bin ich

Gestern ha ich mir auch noch gedacht .....
... wie gesagt, es gibt 26 Buchstaben ..... in meiner "Wörtersamlung" gibt es keine mit 26, 25, 24, 23 .... das meistBuchstabiege hatt 22

Also, ein LIKE auf alle Datensätze ..... das ist nicht parktikabel
ein = zahl so groß wie bei gesuchtem Wort
oder >= + <= .... - + 1 oder 2 gegenüber gesuchtem Wort
für diesem Abfrageteil gibt es einen Index = Abfrage kann "schnell" abgearbeitetet werden ...
... dann einen "Like" nachschalten um zu prüfen ob mir dieser Datensatz wirklich interessiert

Buch vs Heft ....... ja, gutes Beispiel

beide 4 Buchstaben lang .. sowaol strlen als auch aphaCountet
bei =4 kommt alternetive nicht in Ergebnisse
bei 4 <= 5 AND 4>=3 kommt alternetive nicht in Ergebnisse
bei 4 <= 6 AND 4>=2 kommt alternetive nicht in Ergebnisse
und mit einer ungenauigkeit von "2 Existenzen" sollte
korrektur ....
bei dem Abfrageteil mit Index ... word_abcount ..... dort kann es einen + - 1 oder 2 geben

bei der Existenzprüfung gibt es keine + prüfung per SQL
entweder

AND b AND u AND c AND h

oder
AND sum( b + u + c + h ) >=3



PS
ich hab mich gestern gefragt ob es sinnvoll wäre die Daten zu vervielfältigen ....
... Wort selbst
... Wort linkeer Teil
... Wort rechter Teil


Hasenhuf hat geschrieben:... LIKE %uta AND ... A%ta ... Au%a ... Aut%
Damit erschlägst Du einen fehlenden Buchstaben (Ato), einen Buchstabendreher (Stellung: Auot und falscher Buchstabe: Audo) und beliebig zu viele Buchstaben (Autotttttttt) an einer Stelle. Es kann sogar zusammengesetzte Wörter finden (Autohaus), wenn man nicht auch noch parallel auf die Buchstabenanzahl achtet. Fehler an mehr als einer Stelle
zum finden von "zusammengesetzten" werde ich auch noch Linkes nutzen ....
Hasenhuf hat geschrieben:Anfangs habe ich aber auch viel auf Buchstabenebene versucht und meiner Erfahrungen gesammelt.
Ich habe hier ja auch schon vestgestellt das eineige Versuche Wertlos waren ....
... aber das waren sie natürlich nicht, sie brachten die Erkenntniss das es so nicht geht

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 17.06.2008, 09:06

ich glaube du gehst da ganz falsch ran (ohne das ich dir jetzt sagen koennte wie es besser ginge), ich habs mir gerade mal angesen. mp3player -> teamplayer, ganz schlecht, ergebniss wirkt recht planlos.
eventuell solltest du vielleicht versuchen rauszufinden ob es ein zusammengesetztes wort ist "mp3" und "player" und diese woerter benutzen.

google hat aber sicher ein paar mehr moeglichkeiten - zb. worthaeufigkeit: schlage zuerst ein wort vor was haeufiger verwendet wird.

abgesehen davon: du sagst du muesstest "like" auf 800.000 worte anwenden was langsam waere. stimmt, aber du kannst dir auch einen suchindex basteln wo jedes wort nur einmal vorkommt, und dann einen link auf die entsprechenden zeilen enthaelt. im sprachgebrauch kommt man wohl auch mit 4.000 worten aus, selbst wenn du noch ein paar englische begriffe und markenbegriffe mit reinnimmst sollte der suchindex unter 10.000 uniques haben.

schocker der woche: https://www.chegu.de/tokio-hotel.html :o

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag