InterSystems iKnow. Teil Eins iKnow und Badeurlaub

    Ich wollte schon lange meinen Artikel über die iKnow-Technologie schreiben. Drei Jahre sind seit seiner Einführung vergangen, aber bisher gab es keine Veröffentlichungen über die Anwendung dieser Technologie in russischsprachigen Lösungen. Die Erklärung hierfür ist recht einfach: Die russische Sprache wurde nicht vollständig unterstützt. Mit jeder neuen Version, beginnend mit Cache 2013.1, hat sich die Situation jedoch zum Besseren gewendet. Und schließlich haben wir uns entschlossen, das erste Projekt auf iKnow umzusetzen. Wie es war, was passiert ist und was nicht, lesen Sie in meinem Artikel weiter.

    Wie bereits erwähnt, wurden mit iKnow bisher keine Anwendungen und echten russischsprachigen Lösungen erstellt, obwohl das semantische Modell für die russische Sprache erstmals in Version 2013.1 unterstützt wurde. Irgendwann stellte sich heraus, dass das, was für lateinische Sprachen funktioniert, nicht für Russisch (und auch nicht für alle slawischen Sprachen) geeignet ist. Und der Fehler ist die Vielfalt der Formen, die ein Wort annehmen kann. Wenn iKnow den Text analysiert, wird das Konzept gezählt (hier können wir davon ausgehen, dass das Konzept ein Substantiv ist), und die Begriffe „Apfel“, „Äpfel“ und „Äpfel“ sind völlig unterschiedliche Begriffe und werden separat berechnet. Aus diesem Grund kann iKnow, beispielsweise ein Rezept für die Herstellung von Charlotte, als Artikel über die Wartung von Elektroöfen verstanden werden, da der Begriff "Ofen" lautet ("Ofen" einschalten, "Ofen" öffnen, "Ofen" ausschalten usw.). ) kommt im Text häufiger vor als die Formen des Wortes "Apfel". Das war die Schwierigkeit. Und es zu benutzen half zu benutzenLemmatisierung - ein Werkzeug, um das Wort in eine normale Form zu bringen.
    In Cache 2015.1 wurde die FieldTest-Lemmatisierungsunterstützung mithilfe der Hunspell-Bibliothek implementiert. Damit ist es möglich geworden, vollständige Anwendungen für die Analyse von Daten aus Texten in russischer und ukrainischer Sprache zu erstellen. Und ich wollte sofort etwas tun, das ein großartiges praktisches Beispiel für die Verwendung von iKnow ist und gleichzeitig kein nutzloses Analogon von „Hallo Welt“ ist. Und eine solche Aufgabe wurde gefunden!
    Wir erhielten eine Datenbank mit 27.000 Bewertungen der 100 beliebtesten Hotels in der Türkei und in Ägypten. Der Kreis der unmittelbar zu lösenden Aufgaben wurde sofort festgelegt. Ich werde Ihnen jedoch alles in der richtigen Reihenfolge erzählen.
    Was ist eine touristische Bewertung. Dies sind vor allem unstrukturierte Daten oder Texte (das Konzept des „unstrukturierten Texts“, das viele Leute gerne verwenden, erscheint mir sinnlos). Personen, die aus dem Urlaub zurückkehren (wir haben einen Strandurlaub in Betracht gezogen), gehen auf das Portal und geben Bewertungen für das Hotel ab, in dem sie gewohnt haben, oder für die Kategorien dieses Hotels, z. B. Service, Essen, Gastfreundschaft usw. Dann beschreiben sie den Rest in ihren eigenen Worten, notieren, was gut und was schlecht war. Numerische Ruheschätzungen (z. B. auf einer Fünf-Punkte-Skala) sind Metadaten, mit denen die Portaladministration problemlos Hotelbewertungen berechnen kann. Aber oft schreiben die Leute den Text einfach und vergessen, ihn zu bewerten. Es gibt viele solcher Fälle - in unserem Projekt enthält mehr als die Hälfte der Bewertungen nur Text ohne numerische Bewertungen. Es stellt sich heraus Eine solche Bewertung ist für die Bewertung unbrauchbar. Die erste Aufgabe, die gelöst werden musste, bestand darin, iKnow beizubringen, die Hotelbewertung ausschließlich anhand des Bewertungstextes zu berechnen.
    Die restlichen Aufgaben wurden auch recht schnell formuliert:
    • Berechnen Sie die Bewertung bestimmter Kategorien des Hotels (Komfort, Service, Essen, Gastfreundschaft, Territorium, Lage).
    • beurteilen, inwieweit diese Berechnung mit den Schätzungen übereinstimmt, die die Prüfer selbst festgelegt haben;
    • um den letzten Satz über den Rest im Hotel zusammenzufassen (zum Beispiel: „Von den 653 Urlaubern im Hotel haben 278 Personen (43%) die Höflichkeit und Freundlichkeit des Personals zur Kenntnis genommen, 220 Urlauber (34%) mochten das Essen in Restaurants und 76 Gäste (12%) möchten es noch einmal hier zum entspannen ");
    • Erfahren Sie, wie Sie die nützlichsten Bewertungen ermitteln, um sie in erster Linie Portalbesuchern anzubieten.
    • Finden Sie verdächtige und in Auftrag gegebene Rezensionen, die für Lebkuchenplätzchen zu Werbezwecken geschrieben wurden und oft wenig mit der traurigen Realität zu tun haben.
    Es gab noch andere Aufgaben, aber ich werde näher darauf eingehen, wie ich die oben genannten Aufgaben gelöst habe.
    Jetzt muss ich erklären, was iKnow ist und was Sie ohne großen Aufwand daraus erhalten können. iKnow ist eine Technologie, mit der Sie Texte analysieren können. iKnow API - eine Reihe von Funktionen zum Arbeiten mit unstrukturierten Daten. Es gibt auch eine GUI, mit der Sie die Ergebnisse der Indexierung von Texten visualisieren und nützliche Informationen aus den Daten extrahieren können. Wenn wir etwas in iKnow hochladen, erhalten wir denselben Text in der Ausgabe, der jedoch in Konzepte unterteilt istund die Verbindungen zwischen ihnen. Konzepte in Sätzen repräsentieren in der Regel das Thema und Ergänzungen. Die Verbindungen zwischen Begriffen sind in den meisten Fällen Verben, Verbformen oder Präpositionen. Darüber hinaus kann iKnow sorgfältig berechnen, wie oft in einer touristischen Bewertung der Begriff „Hotel“, „Meer“, „Strand“ oder „Lebensmittelvergiftung“ erwähnt wird.

    Bild
    Ein Beispiel für die Unterteilung eines Satzes in Konzepte und Beziehungen. Konzepte sind gelb hervorgehoben, Beziehungen sind unterstrichen, unbedeutende Wörter sind grau markiert.

    Was wir sonst noch aus dem Text herausholen können, hängt hauptsächlich von unserer Vorstellungskraft und ein wenig mehr von der Vielfalt der iKnow-API ab.
    Wie kann ich das Hotel anhand des Bewertungstextes bewerten? Im Folgenden finden Sie einen Ansatz zur Berechnung der numerischen Merkmale im Text.
    Das erste, was Sie tun müssen, ist, den gesamten Text in Teile zu zerlegen. Die iKnow-API ermöglicht das Teilen in Sätze oder auf dem Weg . Alles ist einfach mit Sätzen, es ist ein Teil des Textes, der durch Punkte, Fragezeichen oder Ausrufezeichen begrenzt ist, und auch ein Semikolon. Ein Pfad ist ein Teil eines Satzes, der miteinander verbundene Konzepte beschreibt. In der Praxis sind die Pfade und Sätze in den meisten Fällen gleich. Und nur komplexe oder komplexe Sätze bestehen aus mehreren Pfaden.

    In der Ausgabe fanden wir die in den Bewertungen versprochenen Ameisen , riefen die Rezeption an und informierten sie über unser Problem

    .
    Wir haben den Text in Sätze unterteilt.
    Die zweite Aufgabe ist zu verstehen, was der Satz sagt. Mit anderen Worten, wir müssen bestimmen, über welche Kategorie des Hotels wir in diesem Vorschlag sprechen. Hierzu werden Wörterbücher von sogenannten Funktionsmarkern benötigt. Wenn der Satz beispielsweise den Begriff "Restaurant", "Saft", "Tee" enthält, handelt es sich um die Kategorie "Lebensmittel", und die Begriffe selbst sind im Wörterbuch für diese Kategorie enthalten.

    Von den Getränken im Restaurant und in den Bars, pulverisierten Säften, kohlensäurehaltigen Getränken, Tee, löslichem Kaffee, Wein und Bier, starkem Alkohol in den Bars.

    Unser Vokabular der Funktionsmarker enthielt ungefähr 300 Begriffe, die für die 6 bewerteten Hotelkategorien spezifisch waren. Und nun, was ist wichtig? Wenn es keine Lemmatisierung gäbe, müssten alle Formen dieser 300 Wörter in das Wörterbuch geschrieben werden, damit das System ordnungsgemäß funktioniert. Ja, dies ist zunächst keine unmögliche Aufgabe. Aber wenn das Wörterbuch wächst?
    In der ersten Phase wurden Marker-Wörterbücher manuell generiert. Sie führten die Begriffe ein, die beim Subtrahieren der ersten 200 Überprüfungen auftraten. In der zweiten Phase wurde das Wörterbuch mithilfe des mit iKnow-Funktionen erstellten Wörterbuchlernalgorithmus automatisch erweitert. Infolgedessen nahm die Lautstärke des Wörterbuchs im Durchschnitt um eine Größenordnung zu.
    Nun wissen wir, was der Vorschlag besagt. Es bleibt abzuwarten, ob es dem Rezensenten gefallen hat oder nicht. Mit anderen Worten, es ist erforderlich, die emotionale Farbe des Satzes zu bestimmen. Hierfür wurde ein Wörterbuch emotionaler Marker erstellt. In der Regel wird die emotionale Färbung auf Russisch durch Adjektive (leckerer Kaffee, bequemer Zugang zum Meer usw.) bestimmt. Wir können auch Substantive berücksichtigen, die eine klare Farbe haben (Schmutz, Massenalkoholvergiftung, Freude).
    Und jetzt, da "Magie" beginnt, werden numerische Schätzungen, Grafiken und Tabellen aus dem Text gebildet. Wir können die Anzahl der positiven und negativen Begriffe in Bezug auf die Hotelkategorien für jede einzelne Bewertung berechnen und dann den Anteil der positiven ermitteln. Für die Berechnung habe ich die folgende Formel verwendet:

    Bewertung = N_positiv / (N_positiv + N_negativ) Ermitteln Sie eine

    bestimmte Zahl von 0 bis 1. Je besser das Hotel, desto näher ist der Wert an 1. Wenn Sie diese Zahl mit einem Faktor multiplizieren, z. B. 5, erhalten Sie eine Hotelbewertung auf einer Fünf-Punkte-Skala. was getan wurde.
    Die nächste Aufgabe besteht darin, sicherzustellen, dass dies alles Sinn macht. Dies war vielleicht der entscheidende Punkt in der Arbeit. Um zu verstehen, wie die mit iKnow berechneten Schätzungen mit den Bewertungen des Autors korrelieren, haben wir ein Diagramm erstellt, das alle von uns bewerteten Hotels enthält.

    Bild
    Abbildung 1. Korrelation von Copyright und berechneten Schätzungen.

    In Blau sind hier die Durchschnittswerte der Hotelbewertungen des Autors und in Grün werden sie von iKnow berechnet. Wie Sie sehen, ist die Korrelation eindeutig vorhanden. Obwohl es zu früh ist, endgültige Schlussfolgerungen zu ziehen, ist bereits klar, dass ein solcher Ansatz funktioniert und weiterentwickelt werden kann. Natürlich funktioniert ein ähnlicher Algorithmus für die quantitative Bewertung von Hotels und ihren Parametern mit einer statistisch großen Anzahl von Bewertungen: In unserem Fall wurden Schätzungen mit einer Anzahl von Bewertungen von nicht weniger als 20 für jedes Hotel erstellt. Übrigens möchte ich darauf hinweisen, dass ich zum Erstellen von Analysen eine andere Intersystems-Technologie verwendet habe - DeepSee .
    Die nächsten Aufgaben, die gelöst werden mussten, waren die Suche nach nützlichen und benutzerdefinierten Überprüfungen. Hier ist alles ganz einfach, Sie müssen nur die entsprechenden Kriterien formulieren. Hier sind zum Beispiel die Kriterien für die Nützlichkeit eines Rückrufs:
    • Die Bewertung beschreibt die maximale Anzahl an Hotelkategorien. Das heißt, hier können Sie Informationen zu Service, Zimmerkomfort, Lebensmittelqualität usw. abrufen.
    • Rückruf sollte emotional ausgeglichen sein. Es sollte nicht nur nackte Kritik oder nur eine bewundernde Beschreibung geben. In der Regel mögen die Menschen einige Dinge, während andere unglücklich bleiben. Das heißt, in der Rezension müssen sowohl positive als auch negative emotionale Marker vorhanden sein.
    • Die aus einer solchen Bewertung berechnete Hotelbewertung sollte in der Nähe der Durchschnittsbewertung liegen.
    Ähnliche Kriterien wurden formuliert, um den Verdacht von Überprüfungen zu bewerten. Ich möchte darauf hinweisen, dass es eindeutig ist zu sagen, dass eine maßgeschneiderte Bewertung für iKnow zu anmaßend wäre, aber die Bewertung verdächtig zu machen und den Administrator des Tourismusportals darauf aufmerksam zu machen, ist durchaus möglich.
    Ich möchte gesondert auf DeepSee eingehen, das die Verwendung von Messungen und Metriken für Daten aus iKnow unterstützt. Es gibt viele interessante und vor allem nützliche Informationen für Touristen, die neben statischen Bewertungen auch aus Bewertungen gewonnen werden können. Mit dem Analysegerät wurde festgestellt, dass die Schätzungen von Monat zu Jahr variieren. Und das alles ist auf den DeepSee-Charts gut sichtbar.

    Bild
    Abbildung 2. Änderung der Hotelbewertung nach Monat

    Ich werde versuchen, die geleistete Arbeit zusammenzufassen. Es ist uns gelungen, das erste aussagekräftige Projekt auf iKnow in russischer Sprache umzusetzen. Mit genügend Vorstellungskraft und Fülle der iKnow-API können Sie recht komplexe Lösungen erstellen. In Zukunft planen wir, die Analyse von Bewertungen für Hotels zu einem universellen Tool zu entwickeln, da es im Internet viele Bewertungen gibt: Filme, Autos, Telefone usw.
    Aber es wird falsch sein, nur über die Vorzüge zu sprechen, ohne die Probleme zu erwähnen, mit denen es zu kämpfen hatte. Es gibt zwei solche Probleme:
    • Bearbeitung negativer Angebote;
    • Unvollkommenheit der Lemmatisierung.
    Die Verarbeitung negativer Angebote wurde erstmals in iKnow in Version 2014.1 veröffentlicht. Die Verwendung in einem Review-Analyzer ist jedoch sehr problematisch. Wie zum Beispiel das System diesen Satz bewertet:

    Ich kann nicht sagen, dass uns der Strand nicht gefallen hat.

    oder

    Das Ergebnis, unser persönlicher Urlaub, ging in Ordnung, aber ich würde nie wieder in dieses Hotel gehen!

    iKnow ist in der Lage, das Vorhandensein von Negation in einem Satz zu finden, aber es ist schwierig, mit Sicherheit zu bestimmen, was genau geleugnet wird. Dieses Problem ist besonders charakteristisch für die russische Sprache, in der es keine feste Reihenfolge der Wörter in einem Satz gibt. Wie mit solchen Vorschlägen umgegangen wird, entscheiden Sie, die Optionen lauten: Drehen Sie die Bewertung der emotionalen Marker um (multiplizieren Sie sie mit -1), ignorieren Sie solche Angebote insgesamt oder lassen Sie alles so, wie es ist. In jedem Fall führt dies entweder zu einem Informationsverlust oder zu einem Genauigkeitsverlust bei der Analyse einzelner Sätze. Und es ist überhaupt nicht klar, wie man Sarkasmus analysiert.
    Es gibt immer noch ein Problem mit der Lemmatisierung. Es ist da und es funktioniert, aber manchmal gibt es absolut wundervolle Dinge. Zum Beispiel wird der Präpositionalfall vom Substantiv Hotel - „Über das Hotel“ - auf den Viehbegriff „Kalben“ übertragen, und „grüne wilde Pflaume“ wird in einen Klempner „grüne wilde Pflaume“ umgewandelt.
    Ich denke jedoch, wir sollten optimistisch sein und glauben, dass diese Probleme im Laufe der Zeit gelöst werden. Die Arbeiten zur Verbesserung von iKnow werden fortgesetzt.
    Es gibt keine technischen Details oder Details in diesem Artikel. Über sie und wie man eigene iKnow-Anwendungen erstellt, werde ich in der Folge gerne berichten.

    Jetzt auch beliebt: