expert-system

___ answer7619477 ___

Es sieht so aus, als ob Sie nach der Grammatik-Induktions-Bibliothek suchen.

    
___ qstnhdr ___ Erstellen einer Inferenz-Engine in Python ___ tag123parsing ___ Parsing bezieht sich auf das Brechen eines Artefakts in seine konstituierenden Elemente und das Erfassen der Beziehung zwischen diesen Elementen. Dieses Tag ist nicht für Fragen zum gehosteten Dienst Parse.com ([parse.com] verwenden) oder analysiert Fehler in einer bestimmten Programmiersprache (verwenden Sie stattdessen das entsprechende Sprachen-Tag). ___ qstntxt ___

Ich suche nach einer Richtung und versuche, dieses Problem zu beschriften :

Ich versuche eine einfache Inferenz-Engine (gibt es einen besseren Namen?) in Python zu erstellen, die eine Zeichenfolge und -

braucht

1 - Erstellen Sie eine Liste von Token, indem Sie einfach eine Liste von durch Leerraum getrennten Werten erstellen

2 - kategorisieren Sie diese Token mit regulären Ausdrücken

3 - Verwenden Sie eine höhere Ebene von Regeln, um Entscheidungen basierend auf den Kategorisierungen zu treffen

Beispiel:

"90001" - ein Token entspricht der Postleitzahl Regex, eine Regel existiert für eine Zeichenfolge, die nur eine Postleitzahl enthält bewirkt, dass ein bestimmtes Verhalten auftritt

"30 + 14" - drei Token, Regex für numerischen Wert und mathematische Operatoren passen zusammen, eine Regel existiert für ein numerischer Wert gefolgt von einem mathematischen Operator gefolgt von einem anderen numerischen Wert verursacht ein bestimmtes Verhalten auftreten

Ich habe Probleme damit, wie ich Schritt 3, das höhere Regelwerk, am besten durchführe. Ich bin sicher, dass ein Framework existieren muss. Irgendwelche Ideen? Wie würden Sie dieses Problem charakterisieren? Regelbasiertes System, Expertensystem, Inferenz-Engine, noch etwas?

Danke!

    
___ tag123expertensystem ___ In der künstlichen Intelligenz ist ein Expertensystem ein Computersystem, das die Entscheidungsfähigkeit eines menschlichen Experten nachbildet. ___ tag123ruleengine ___ Rule-Engines sind Softwarekomponenten, mit denen Anwendungsentwickler Geschäftsregeln externalisieren und ihren Lebenszyklus unabhängig vom Anwendungscode verwalten können. ___ answer2212121 ___

Ich bin sehr überrascht, dass Schritt # 3 derjenige ist, der dir Probleme bereitet ...

Vorausgesetzt, Sie können jedes Token korrekt beschriften / kategorisieren (und vor der Kategorisierung können Sie die richtigen Token finden, da es viele mehrdeutige Fälle geben kann ...), scheint das "Schritt # 3" -Problem zu sein könnte leicht mit einer kontextfreien Grammatik bewältigt werden, wobei jede der gewünschten Aktionen (z. B. Postleitzahlensuche oder Berechnung mathematischer Ausdrücke ...) Symbole wären, deren Erzeugungsregel selbst aus den möglichen Tokenkategorien besteht. Um dies in BNF-Notation zu veranschaulichen, könnten wir etwas wie

haben %Vor%

Vielleicht ist es Ihre Sorge, dass es schwierig werden wird, die gesamte Anforderung in Bezug auf nicht konfligierende Grammatikregeln auszudrücken, wenn die Dinge kompliziert werden. Oder besteht Ihre Sorge darin, dass man Regeln dynamisch hinzufügen könnte, wodurch die Grammatik "Kompilierungs" -Logik in das Programm integriert werden muss? Was auch immer die Sorge ist, ich denke, dass dieser dritte Schritt vergleichsweise trivial sein wird.

Wenn andererseits die verschiedenen Kategorien (und der zugrundeliegende Eingabetext) so beschaffen sind, dass sie auch mit einer regulären Sprache beschrieben werden können (wie Sie in der Frage anzudeuten scheinen), werden ein Textparser und Klassifizierer (Steps # 1 und # 2 ...) ist in der Regel eine weniger als triviale Angelegenheit.

Einige Beispiel-Python-Bibliotheken, die das Schreiben und Auswerten von Grammatiken vereinfachen:

___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___
2
Antworten

Erstellen einer Inferenz-Engine in Python

Ich suche nach einer Richtung und versuche, dieses Problem zu beschriften : Ich versuche eine einfache Inferenz-Engine (gibt es einen besseren Namen?) in Python zu erstellen, die eine Zeichenfolge und - braucht 1 - Erstellen Sie eine List...
06.02.2010, 03:57