Classify oder Schlüsselwort stimmen mit einer Zeichenfolge oder einem Ausdruck einer natürlichen Sprache überein

9

Dies ist mein erster Post auf StackOverflow, also entschuldige mich, wenn es die richtigen Informationen fehlen.

Szenario.

Ich bin dabei, mich von der Google Weather API zum BOM (Australia) Wetterdienst zu bewegen. Ich habe es geschafft, die Wetterdaten aus der Stückliste mit Streamreadern usw. zu bekommen, aber was ich festhalte, ist das Bildsymbol, das der täglichen Vorhersage entspricht.

Was ich mit der alten Google Weather API gemacht habe, war ziemlich brutal, hat es aber geschafft. Die Google Weather API gab nur ein paar verschiedene Arten von Prognosen ab, die ich zu einer Zeichenkette zusammenfügen konnte, die ich wiederum in einem imageURL verwenden konnte.

Beispiel für das, was ich mit der Google Wetter API gemacht habe ...

imageDay1.ImageUrl="Bilder / Wetter /" + lbWeatherDay1Cond.Text.Replace ("", string.Empty) + ".png";

  

"Meist sonnig" = mostlysunny.png

     

"Sonnig" = sunny.png

     

"Chance of Rain" = chanceofrain.png

     

"Duschen" = duschen.png

     

"Teilweise bewölkt" = partiallycloudy.png

Es gab ungefähr 15 verschiedene mögliche Optionen für die tägliche Vorhersage.

Die Probleme, die ich jetzt und mit BOM (Australia Weather Service) habe, ist dies ...

  

Mögliche Morgendusche

     

Dusche oder zwei, clearing später

     

So viele Tausende mehr .... es gibt keinen Standard.

Was ich hoffe, ist, dass es möglich ist, dass einige der großartigen Köpfe hier einen String aus einem Schlüsselwort innerhalb dieser Zeichenfolge erstellen? Etwas wie "Showers" für "Showers.png" oder etwas etwas komplexeres, um "Chance of Showers" als "Chanceshowers.jpg" zu erkennen und "Shower or two" als "Showers.png" zu behalten.

Ich bin leicht zu irgendwelchen Ideen oder Lösungen (hoffentlich in c #). Solange es sehr leicht ist (der Prozess muss für die 5-Tage-Vorhersage wiederholt werden) und kann fast jedes Szenario erfassen ...

Zu diesem Zeitpunkt mache ich weiter mit String.Replace, nach String.Replace, nach String.Replace Option .... Es wird für jetzt tun, aber ich kann es nicht in die Produktion wie folgt rollen .

Prosit alle!

Trent

    
Trent Steenholdt 20.09.2012, 11:30
quelle

3 Antworten

3

Ich habe in den Kommentaren bemerkt, dass Sie die Regex-Lookup-Tabelle ausprobiert haben, die vielleicht gut genug ist, um das Problem zu lösen. Ich werde jedoch auf das, was Adriano über eine robustere Bayes-Lösung ausführte, näher eingehen.

Dies ist ein Problem, das mit maschinellem Lernen und KI zusammenhängt. Es beinhaltet einige Natural Language Processing, wie Google versucht zu interpretieren, was Benutzer fragen, oder wie Mail-Spam-Filter funktionieren.

Ein einfaches und interessantes System beschreibt Sebastian Thrun in den folgenden Videos, die Teil eines Online-Kurses waren. Es beginnt damit, eine grundlegende Methode zu beschreiben, mit der ein Algorithmus lernen kann, eine Sammlung von Wörtern (z. B. aus einer E-Mail) als "Spam" oder "Kein Spam" zu klassifizieren.

(Die meisten Videos sind wirklich kurz.)

  1. Spam-Erkennung - Quiz-Antwort
  2. Wahrscheinlichkeit von Spam - Quiz-Antwort
  3. Maximale Wahrscheinlichkeit - Quiz-Antwort
  4. Beziehung zu Bayes Networks - Quiz-Antwort
  5. Klassifizierungsquiz - Quizantwort
  6. Klassifikations-Quiz 2 - Quiz-Antwort
  7. Klassifizierung 3 Quiz, ein erfundenes Beispiel
  8. Quizantwort & amp; Laplace-Glättung - Quiz-Antwort
  9. Geglättetes Klassifizierungsquiz - Quizantwort
  10. Finales Quiz - Quiz-Antwort

Diese Bayessche Methode ist robust gegenüber dynamischen Eingaben und ist relativ schnell zu lernen. Nachdem Sie genügend Trainingsdaten verbraucht haben, müssen Sie lediglich eine Nachschlagetabelle mit Wahrscheinlichkeiten speichern und eine Reihe von arithmetischen Berechnungen zur Laufzeit ausführen.

Mit dieser Grundlage könnten Sie die gleiche Methode anwenden, um für mehrere Klassifikationen zu arbeiten, z. eins für jedes Wetterbild.

    
Kache 24.09.2012, 19:42
quelle
1

Wenn Sie die Webseite bereits erfassen, können Sie nicht einfach das Segment erfassen, in das sie das Bild eingefügt haben, und das Bild auf diese Weise erhalten? Wenn es Klartext von "teilweise sonnig" gibt, könntest du auch einfach diese Abteilung einfangen und einfach deine eigenen Bilder verwenden. Ein Bayes'sches Netz, nur um das Wetter abzukratzen, klingt unglaublich schmerzhaft.

    
user1701047 17.10.2012 16:59
quelle
-2
%Vor%

usw.

    
Ben 20.09.2012 11:37
quelle