C++ Hilfe von chatGPT, hier Regulare Expression
-
Ich stehe etwas auf Kriegsfuß mit komplexen RegularExpression und habe deshalb mal eine KI (chatGPT) befragt und war ganz überrascht.
Die Antwort war nach einigen Versuchen, die Anforderungen klar zu formulieren, überraschend gut. Es wird nicht nur das Ergebnis geliefert, sondern auch eine Erklärung des Ergebnisses.
Hier mal der Chat-Verlauf, etwas verkürzt:
Ich: Hallo, eine Frage zu C++ und Regulare Expression : kennst Du die c++ Bibliothek QT?
chatGPT: Ja, ich kenne die C++-Bibliothek Qt. Qt enthält auch eine Reguläre Expression-Bibliothek, die es Ihnen ermöglicht, reguläre Ausdrücke in Ihren Qt-basierten C++-Anwendungen zu verwenden. Die Qt-Reguläre Expression-Bibliothek bietet viele Funktionen zur Verarbeitung von regulären Ausdrücken, einschließlich Suche, Ersetzung, Extraktion und Überprüfung. Wenn Sie weitere Fragen haben, lassen Sie es mich gerne wissen.
Ich: Könntest Du mir bitte eine QRegularExpression erstellen. Ich brauche eine QRegularExpression mit folgenden Anforderungen: Die Zeichenkette muss mit einem Buchstaben von A-Z oder a-z oder '' anfangen. Die Zeichenkette darf Buchstaben von A-Z oder a-z oder '' oder Ziffern von 0-9 enthalten. Die Zeichenkette darf ':' enthalten, aber nur als Pärchen "::". '::' darf mehrfach vorkommen. '::' darf nicht am Ende stehen, direkt nach dem "::" muss mindestens ein Buchstabe A-Z oder a-z oder '_' folgen.
chatGPT: Hier ist die QRegularExpression, die Ihren Anforderungen entspricht:
QRegularExpression("^[a-zA-Z_][a-zA-Z0-9_]*(::[a-zA-Z_]+[a-zA-Z0-9_]*)*$")
Erklärung der einzelnen Bestandteile:• ^ - Beginn der Zeichenkette. • [a-zA-Z_] - Ein Buchstabe von A-Z oder a-z oder ein Unterstrich. • [a-zA-Z0-9_]* - Null oder mehr Buchstaben, Zahlen oder Unterstriche. • (::[a-zA-Z_]+[a-zA-Z0-9_]*)* - Eine oder mehrere Paare des Doppelpunkt-Musters, wie folgt: Zwei Doppelpunkte, gefolgt von mindestens einem Buchstaben von A-Z oder a-z oder einem Unterstrich, gefolgt von Null oder mehr Buchstaben, Zahlen oder Unterstrichen. • $ - Ende der Zeichenkette.
Beachten Sie, dass dies nur eine Möglichkeit ist, diesen regulären Ausdruck zu definieren, und je nach Anforderungen des Kontexts und den Details der Daten, die verarbeitet werden sollen, möglicherweise weitere Anpassungen erforderlich sind.
Chat EndeNur mal so als Anregung. Falls das falsche Forum, dann bitte verschieben.
-
@Helmut-Jakoby Aber Vorsicht. Das Teil macht auch Fehler.
-
@Helmut-Jakoby sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Ich stehe etwas auf Kriegsfuß mit komplexen RegularExpression
Ja, das kann schonmal ganz schön unübersichtlich werden. Wobei mein Nemesis eher Escaping ist, wenn z.B. Klammern oder Backslashes erlaubt sind. Wenn dann noch ein paar weitere Ebenen Escaping hinzukommen, z.B. weil der Audruck in C++ über einen Shell-Befehl abgesetzt wird und der C++-Code durch das Build-System generiert wurde, das auch nochmal Shell-Befehle erzeugt, bekomm' ich echt Flimmern vor den Augen und mach oft nur noch Try-and-Error (war das jetzt
"\\\\\\\\("
oder"\\\\\\\\\("
?)'::' darf nicht am Ende stehen, direkt nach dem "::" muss mindestens ein Buchstabe A-Z oder a-z oder '_' folgen
Ich denke es hilft, die Regeln schon gedanklich so weit wie möglich aufs Wesentliche zu reduzieren. Z.B. ist die Regel, dass
::
nicht am Ende stehen darf, bereits dadurch abgedeckt, dass darauf etwas anderes folgen muss (kann also gar nicht am Ende stehen). Die kann man also streichen und somit die Komplexität ein klein wenig reduzieren, wenn man die natürliche Sprache dann mal "manuell" ohne KI in eine Regulären Audruck überführt.Ansonsten immer wieder beeindruckend, was ChatGPT so produziert. Sicher gut als Inspiration, wenn man nicht mehr weiterkommt. Ich würde aber immer genau gegenprüfen, wie @Tyrdal schon andeutete. Sieht aber zumindest beim groben Überfliegen gut aus, hätte ich wohl so ähnlich geschrieben.
-
Unbenommen muss man die Sachen unbedingt überprüfen. Ich habe auch drei Versuche gebraucht, um ein mir genehmes Ergebnis zu bekommen.
Aber wenn das Ergebnis stimmt, hat man auch was gelernt, zumindest wenn man dieErklärung der einzelnen Bestandteile:
sich zu Gemüte führt. Und es war für mich auch sehr interessant, wie ich meinen Formulierungsstiel immer genauer anpassen musste.
-
Chat-GPT ist schon recht beeindruckend. Aber Lernen indem man die Antwort inklusive Erklärung liest ist gefährlich. Es wurde vielfach demonstriert dass das Ding auch gern total falsche Ergebnisse produziert, diese aber "gut" begründet, in dem Sinn dass es jmd. der es auch nicht besser weiss eventuell überzeugen könnte.
-
Ihre Fehler gut begründen? Das machen Menschen ständig.
-
@Erhard-Henkes sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Ihre Fehler gut begründen? Das machen Menschen ständig.
Besonders frustrierend, wenn man sogar mathematisch bewiesen hat, dass es Schwachsinn ist und dann scheitert, sich gegen so jemanden in einer Diskussion durchzusetzen. Mit der "gut mit Worten"-Kompetenz lässt sich je nach Umfeld so manches kompensieren und Karriere machen ... so Leuten läuft man hin und wieder mal über den Weg
-
Ob KI oder von Mensch gemacht, dass "Vier-Augen-Prinzip" mit mindestens einem Menschen sollte mMn weiterhin angewendet werden.
-
Früher haben die Verkäufer neben den Tischrechnern das Ergebnis mit dem Rechenschieber überprüft. Das war als die ersten digitalen Registrierkassen aufkamen, man soll sich nicht quer stellen und den Anordnungen des Rechners unbedingte folge leisten
-
@Achromat sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Früher haben die Verkäufer neben den Tischrechnern das Ergebnis mit dem Rechenschieber überprüft. Das war als die ersten digitalen Registrierkassen aufkamen, man soll sich nicht quer stellen und den Anordnungen des Rechners unbedingte folge leisten
Das ist eine etwas seltsame Formulierung die den bedeutendsten Unterschied zwischen klassischen und KI-basierten Algorithmen außer acht lässt:
Bei klassische Algorithmen lässt sich deren Korrektheit mathematisch beweisen. Bei KI-Algorithmen hingegen kann man deren Korrektheit - und da lasse ich mich als nicht-Spezialist auf dem Gebiet auch gerne eines Besseren belehren - nur empirisch nachweisen.
Korrekte mathematische Beweise sind 100%ig und unwiderlegbar - da kann man ruhigen gewissens Haus und Hof drauf verwetten, während empirische Beweise zwar eine mehr oder weniger hohe Wahrscheinlichkeit belegen können, dass eine Vermutung zutrifft, aber immer eine gewisse Restunsicherheit bleibt.
Das muss nicht unbedigt ein Problem sein, immerhin arbeitet der Großteil der Naturwissenschaften mit dieser Form von "Beweisen". Für Informatiker ist das jedoch immer etwas befremdlich, da diese meist eine mathematische Perspektive haben und für sie ein bewiesen "korrekter" Algorithmus immer korrekt sein muss. In exakt 100% der Fälle und ohne Ausnahme (Probablisitische Algorithmen - bei denen man mathematisch exakt weiss, worauf man sich einlässt - mal außen vor gelassen).
Das ist zumindest meine Interpretation der Skepsis gegenüber KI-Algorithmen, die ich durchaus teile.
-
Skepsis bei KI ist unbedingt angebracht!
Wir wissen doch noch gar nicht, was da auf uns zukommt.
Zur Zeit ist die Faszination groß. Da wir Menschen gerne Computern glauben (wer kennt nicht so was wie; "Mein Rechner/Programm sagt aber...") könnte die Sorge, dass wir einer KI vertrauen nicht ganz unberechtigt sein.
Wer weiß schon, in welchen Situationen man nicht schon mal unwissentlich mit einer KI kommuniziert hat. Wir nehmen es doch jetzt schon ohne Murren hin, dass unsere Kreditwürdigkeit durch einen Algorithmus festgelegt wird.
Was ist, wenn Einschränkungen oder weitere Entscheidungen, die das menschliche Zusammenleben tangieren, durch eine KI "logisch" vorgenommen werden?
Wer füttert die KI mit ihrem Wissen (wir Menschen haben doch schon so unsere Schwierigkeiten mit der Realität)? Wer hat über eine KI welche Macht? Welche Macht wird einer KI über menschliche Belange gewährt? Und was ist mit "Weiterentwicklung" des Homo sapiens; wird eine KI uns auf unseren jetzigen Entwicklungsstand festnageln?
Was wünscht sich der Mensch nicht schon von Anbeginn an so was wie eine allwissende Instanz; nun bekommt er sie anscheinend geboten.
Ok, ist etwas sarkastisch.
-
@Helmut-Jakoby sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Wir wissen doch noch gar nicht, was da auf uns zukommt.
Vermutlich nur Teilerfolge, da der Suchraum bei neuronalen Netzen riesig ist.
Aber ein wenig klopft die technische Singularität an die Tür.
- Was wäre wenn das erste künstliche Bewusstsein entstanden wäre?
- Würde der Mensch Angst bekommen und den Stecker ziehen wollen?
- Würde das die KI als Aggression interpretieren?
- Und wie stimmt man eine solche KI um?
- Was wäre wenn die KI eine Psychose hätte? Hoffen das diese an Altersschwäche stirbt, funktioniert hier leider nicht.
Es steckt ein wenig Skynet, Terminator in der aktuellen Situation. Fast jedes technische Gerät ist mit dem Internet verbunden. Warum sollte eine KI diese nicht übernehmen? An eine militärische Auseinandersetzung glaube ich nicht, aber ich glaube der Einfluss könnte so groß sein dass die menschliche Population die nächsten Jahrhunderte merklich schrumpft. Was sind schon 1000 Jahre für eine KI? Warum also nicht ein Fortpflanzungsschädliches Mittel als harmlos klassifizieren?
-
@Finnegan sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Bei klassische Algorithmen lässt sich deren Korrektheit mathematisch beweisen. Bei KI-Algorithmen hingegen kann man deren Korrektheit - und da lasse ich mich als nicht-Spezialist auf dem Gebiet auch gerne eines Besseren belehren - nur empirisch nachweisen.
Vlt. der kleine Zusatz, dass die Unterscheidung zwischen "klassischen Algorithmen" und "KI Algorithmen" etwas schwammig ist. Es gibt da ja zahlreiche Felder wie Suchalgorithmen, Rule Based AI Systeme, spezielle Optimierungsprobleme etc. wo deterministische und beweisbare algortihmen dahinter stecken. Über die Definition von Künstlicher Intelligenz lässt sich ja immer ganz gut streiten. Aber im Bereich von KI werden darunter nicht nur "lernende" Systeme verstanden, sondern eben auch solche die "intelligente" Aufgaben (also solche die klassischerweise menschliche Intelligenz benötigen) mit deterministischen nachvollziehbaren / beweisbaren Algortihmen lösen (Beispiel: Schach Engine => Kann man mit Machine Learning oder Reinforcement Learning lösen, geht aber auch mit beweisbaren adversarial search Methoden)
Und auch im Bereich von lernenden Systemen, gibt es durchaus viele Möglichkeiten Beweise zu führen. Nicht alles sind Blackbox Systeme. Von daher würde ich deine Aussage nicht so pauschal als richtig ansehen. Allerdings muss man eben auch sagen, dass grade der "Hype" von vielen solcher (nach aktuellem Kenntnisstand) eher Blackbox Systeme kommt, wo man nur empirisch Nachweise führen kann. Aber auch das kann sich ja in Zukunft ändern
-
@Helmut-Jakoby sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Wir nehmen es doch jetzt schon ohne Murren hin, dass unsere Kreditwürdigkeit durch einen Algorithmus festgelegt wird.
Häh? Ich hab da schon sehr viel Murren gehört.
-
@Leon0402 sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
@Finnegan sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
Bei klassische Algorithmen lässt sich deren Korrektheit mathematisch beweisen. Bei KI-Algorithmen hingegen kann man deren Korrektheit - und da lasse ich mich als nicht-Spezialist auf dem Gebiet auch gerne eines Besseren belehren - nur empirisch nachweisen.
Vlt. der kleine Zusatz, dass die Unterscheidung zwischen "klassischen Algorithmen" und "KI Algorithmen" etwas schwammig ist. [...]
Ja, ich dachte mir auch schon, dass der Übergang wahrscheinlich sehr fliessend ist, als mir probablilistische Algorithmen in den Sinn kamen oder Monte-Carlo-Verfahren, die gegen immer genauere Lösungen konvergieren aber nie absolute Korrektheit erreichen. Auch die mathematischen Grundlagen der neuronalen Netze dürften alle deterministisch und beweisbar sein.
Der Ausdruck "Blackbox Systeme", den du hier verwendest halte ich daher auch für passender. Der trifft das, worauf ich eigentlich hinaus wollte deutlich besser.
-
KI ist gefährlich, unser EGO auch..
-
@SoIntMan Es gibt nur Natürliche Intelligenz, Flugzeug Steuerungen sind gefährlicher als Schachcomputer. Und mehr passiert dort auch niemals. Es wird keine Intentität neben dem Fleisch existieren, solange die Schaltvorgänge nicht im Femtometerbereich stattfinden, und da sind wir noch gut 100 tausend Jahre von entfernt , falls es so weiter gehen sollte.
-
@SoIntMan Mir gefällt mein Gehirn auch.
Fakt ist doch, KIs haben kein Bewusstsein und können demzufolge auch nicht gefährlich sein oder böse werden, und tuen nur das, wofür sie programmiert wurden.
Außerdem ... ich habe das Gefühl, ChatGPT gibt mittlerweile absichtlich manchmal falsche Antworten. Kann mich aber auch irren.
Na ja, aber die politische Regulierungsmaschinerie (mir fällt jetzt kein neutrales Wort dazu ein ) läuft ja schon an, was darf es, was darf es nicht ...
-
@Fragender sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
@SoIntMan Mir gefällt mein Gehirn auch.
Fakt ist doch, KIs haben kein Bewusstsein und können demzufolge auch nicht gefährlich sein
Das ist natüröich Quatsch. Bau ne KI in ein Waffensystem ein und denk nochmal nach.
-
@Tyrdal Das war nicht das, was ich gesagt habe. Natürlich kann eine KI 50 neue, hochwirksame Gifte in 24 Stunden finden - das tut sie aber nicht, wenn es ihr vorher nicht "befohlen" wurde.
-
@Fragender sagte in C++ Hilfe von chatGPT, hier Regulare Expression:
@Tyrdal Das war nicht das, was ich gesagt habe. Natürlich kann eine KI 50 neue, hochwirksame Gifte in 24 Stunden finden - das tut sie aber nicht, wenn es ihr vorher nicht "befohlen" wurde.
Noch nicht, aber das kann noch werden. In der Natur hat ja auch nicht jede Lebensform ein Bewusstsein.