"Meinten Sie [...]" in Python?
Nabend!
Kennt ihr irgend einen Service der falsch geschriebene Wörter/Sätze in korrekte Wörter/Sätze ergänzt? Am liebsten einen Webservice.
Hintergrund:
Ich möchte gerne einen Namen einer Android App, in Python, auf Korrektheit überprüfen.
Also z.B. "wahtsap" wird eingegeben und "whatsapp" wird erkannt.
Ein "Anagramm" sagt mir zwar etwas, aber einen Service der mir wirklich die korrekte Bedeutung/Schreibweise des Wortes ausgibt, habe ich bisher nicht gefunden. Google macht das ja auch ("Meinten sie: [...]"), nur wie mache ich das am besten? :)
Vielen Dank im Voraus :)
MfG
Daiox
AW: "Meinten Sie [...]" in Python?
Google macht das indem sie eine ENORME datensammelwut haben und die Suchanfragen ihrer User dazu "missbrauchen" um dann rauszufinden was user möglicherweise suchen möchten wenn sie ein Wort eingeben. Dadurch kann man autocorrect machen zu Worten die z.b nicht im Wörterbuch stehen. Android Tastaturen haben solch eine Funktion ebenfalls eingebaut - setzen aber wieder auf vorherige eingaben des Users. Heißt quasi das die Datenbank schon dein "Schreibverhalten" kennen muss, um Vorschläge zu liefern.
"eben mal so" wirst du diese Funktion aber nicht implementieren können schätze ich.
Wenn du näher beschreibst was du erreichen möchtest (also was für eine App / wofür die eingabe gebraucht wird), könnte man vllt Alternativen finden oder dir anderweitig weiterhelfen.
Du KÖNNTEST direkt im playstore nachschauen ob die app die jemand sucht & eingibt dort vorhanden ist und falls nicht eine andere vorschlagen.
Dazu müsstest du dann aber die requests selbst craften, auswerten usw.
Anders gesagt - das ganze ist nicht einfach mal so umzusetzen für ein Anfänger / Neuling^^
grüße
AW: "Meinten Sie [...]" in Python?
warum nicht die von google benutzen? kann doch nicht so schwer sein da ein bisschen zu klauen x)
AW: "Meinten Sie [...]" in Python?
Zitat:
Zitat von
cruzz
warum nicht die von google benutzen? kann doch nicht so schwer sein da ein bisschen zu klauen x)
1) Google sperrt IP's wenn man ein bisschen zuviele Anfragen sendet..und dann ist das komplette Google (ALLE google services..auch yt usw) gef*ckt von dieser einen IP für einige Zeit. Anfangs nur 10 Minuten ca. danach dann 1 Stunde, usw usf.. (gibt keyword research tools die auf der unoffiziellen API von google basieren, mit denen hab ich schon rumprobiert.. daher weiß ichs - und das springt relativ schnell an)
2) Es dürfte schwer sein auszufiltern was nun eine App ist, und was ein komplett anderes Wort ist.
Beispiel:
Ich tippe ein "Baumhaus".. woher weiß nun das Programm das es eine App ist?
Nur weil Google vllt "Boumhaus" zu "Baumhaus" korrigiert, machts das nicht zu einer App.
Wie soll man sowas filtern auf diesem Weg? Geht nicht :P
Da wäre es sinnvoller einfach die Playstore zu usen und dort dann Request bei der Such-API hinzuschicken und dann den 1. eintrag zu parsen.
IMHO die bessere Alternative^^
AW: "Meinten Sie [...]" in Python?
lass doch regex über jede adresse vom playstore oder auch einem anderen anbieter
Code:
<div class="id-app-title" tabindex="0">Pokémon GO</div>
regex stern im script verschieben,oder mit anfangsbuchstaben beginnen und nur regex sternchen,so könnte deine datenbank ausspucken wenn z.b. ein "W" eingegeb wird und sämtliche apps anzeigen die mit W beginnen
buchstabe für buchstabe abgleichen mit datenbank
AW: "Meinten Sie [...]" in Python?
AW: "Meinten Sie [...]" in Python?
Einen schönen guten Morgen!
Ich finde das Thema sehr interessant, weil ich mich auch schonmal damit beschäftigt hab und gebe mal meinen Senf dazu :P
Aber erstmal:
Zitat:
Zitat von
Cystasy
Google macht das indem sie eine ENORME datensammelwut [...]
Nett geschrieben, aber beantwortet nicht wirklich die Frage.
Zitat:
Zitat von
Cystasy
"eben mal so" wirst du diese Funktion aber nicht implementieren können schätze ich.
Wenn du näher beschreibst was du erreichen möchtest (also was für eine App / wofür die eingabe gebraucht wird), könnte man vllt Alternativen finden oder dir anderweitig weiterhelfen.
Er will keine Datenbank aufsetzen und son Service selber schreiben. Er sucht nach einem Service der dies für ihn tut. Aus diesem Grund schreibt er hier und bittet genau um diese Alternativen von denen du sprichst. Und Hintergrund zum Problem hat er denke ich genug gegeben.
Zitat:
Zitat von
Cystasy
Du KÖNNTEST direkt im playstore nachschauen ob die app die jemand sucht & eingibt dort vorhanden ist und falls nicht eine andere vorschlagen.
Das ist ne halbe Antwort auf die Frage. Er sucht halt genau dafür eine API (so wie ich das verstanden habe), damit er sich halt nicht durch das HTML-Gewusel durchhangeln muss.
Zitat:
Zitat von
Cystasy
Dazu müsstest du dann aber die requests selbst craften, auswerten usw.
Anders gesagt - das ganze ist nicht einfach mal so umzusetzen für ein Anfänger / Neuling^^
Durch welchen Teil der Frage kommst du darauf, dass der Threadersteller ein "Anfänger" ist? Die Frage war doch lediglich nach einer API^^ In Python ist ein einfacher Webrequest glaube ich sogar nen 2-Zeiler. Und das einfache Parsen sollte in diesem Fall kein Problem mehr darstellen und dient ganz im Gegenteil noch gerade für Anfänger als Übung für den Umgang mit Strings, Schleifen und Bedingungen (zumindest wenn man sich keinen fertigen Parser schnappt und wirklich alles selber schreibt)
Zitat:
Zitat von
Cystasy
1) Google sperrt IP's wenn man ein bisschen zuviele Anfragen sendet..und dann ist das komplette Google (ALLE google services..auch yt usw) gef*ckt von dieser einen IP für einige Zeit. Anfangs nur 10 Minuten ca. danach dann 1 Stunde, usw usf.. (gibt keyword research tools die auf der unoffiziellen API von google basieren [...]
"gef*ckt von dieser IP" ist echt geil :D Gebe ich dir aber Recht, allerdings glaube ich nicht, dass der Threadersteller Massenanfragen an Google stellen möchte. Er schrieb ja bereits, dass er eine Benutzereingabe überprüfen möchte. Das kommt vom Anfragetempo einer normalen Eingabe auf Google sehr nahe und da wurde ich noch nie gesperrt. Oder vertue ich mich da irgendwo?
Jetzt aber zum Thema:
Um den Beitrag von Starflow einmal zu ergänzen:
Der Anbieter "AppTweak" bietet eigentlich genau das an was gesucht worden ist und trifft damit den Nagel auf den Kopf. Allerdings ist der Service kostenpflichtig, wobei ich der Meinung bin, dass gute Sachen auch ihren Preis haben dürfen! ;) Du hast mit dieser API noch diverse andere Möglichkeiten (siehe Pricing), was aber glaube ich für dich ein Overkill wäre.
Interessant fand ich ebenfalls den Link zur "android-market-api" und wollt dazu auch nochmal eure persönliche Einschätzung hören. Jemand Erfahrungen? Die Doku ist ja nicht besonders groß^^ Ein Versuch wäre es aber auf jedenfall wert, allerdings müsste im Falle von Python das Programm dem Projekt mit beigelegt werden.
Ich bin damals auch auf der Suche gescheitert und habe dann direkte Requests an den PlayStore geschickt (wie mehrfach hier auch erwähnt) und alles selber geparst.
Viele Grüße,
Barny
AW: "Meinten Sie [...]" in Python?
Zitat:
Zitat von
Barny
In Python ist ein einfacher Webrequest glaube ich sogar nen 2-Zeiler. Und das einfache Parsen sollte in diesem Fall kein Problem mehr darstellen und dient ganz im Gegenteil noch gerade für Anfänger als Übung für den Umgang mit Strings, Schleifen und Bedingungen (zumindest wenn man sich keinen fertigen Parser schnappt und wirklich alles selber schreibt)
Es ging mir da eher drum, das es nicht ganz so Trival ist die Requests zu reversen wenn man sowas noch nie gemacht hat (wovon ich beim OP ausgehe, sonst hätte er es schon längst getan). Man muss da ja sogesehen die interne API von der Google Playstore Suche reversen, rausfinden wie man einen request formulieren muss, wie man dann die Antwort auswertet usw. Darum gings mir - nicht um das reine programmieren danach^^ Das ist ja nicht wirklich schwer dann wenn man mal weiß was man tun muss (imho).
AW: "Meinten Sie [...]" in Python?
@Barny & Dailox:
Vergesst das mit der android-market-api am besten wieder, der letzte commit war vor ~4 Jahren, ist also sehr wahrscheinlich nicht mehr up2date.
Wollte nur auch eine gratis Variante zur AppTweak API bereitstellen; zu hastig.
Aber vielleicht kann es ja nütlzlich sein als Einstieg, wenn du dich entscheiden solltest die Google API selbst zu reversen.
Ansonsten schau dir vielleicht auch noch mal das NLTK an; macht im Endeffekt das selbe wie LingPipe, ist aber in python geschrieben, nicht in Java.
Also entweder AppTweak oder selber reversen und dann das ganze ans NLTK "kleben", hübsche GUI basteln, Fertig.
Immer schön ans cachen denken, bei AppTweak kann das bares Geld sparen. ;)
/E:
Selber machen soll wohl nicht so der knaller sein, da es wohl keine richtige API gibt, sondern nur das WebInterface vom Store welches man parsen müsste.
Ausserdem ist die Suche für Bots verboten, wenn Google also mitbekommt dass du da rumbastelst, kassierste wahrscheinlich nen Ban.
Aber ich hab noch ne alternativen paid Service gefunden:
https://42matters.com/pricing
Preislich sieht das schon günstiger aus als AppTweak, fragt sich nur ob die Qualität der Daten vergleichbar ist.
AW: "Meinten Sie [...]" in Python?
Ich habe sowas mal in SQL geschrieben. mithilfe von:
- https://de.wikipedia.org/wiki/Levenshtein-Distanz
- https://de.wikipedia.org/wiki/Soundex
und noch einer eigenen Methode. aus den 3 bilde ich ein Rating von 100 bis 0% und ordne die Ergebnisse danach.
wenn du möchtest kann ich den code mal posten (wenn du noch Hilfe brauchst)