Maschinelles Lernen zum Lernen von Zeichenfolgenmustern

11

Ich habe eine Liste von Wörtern, die zu verschiedenen selbst definierten Kategorien gehören. Jede Kategorie hat ein eigenes Muster (zum Beispiel hat eine eine feste Länge mit Sonderzeichen, eine andere besteht aus Zeichen, die nur in dieser Kategorie von "Wörtern" vorkommen, ...).

Zum Beispiel:

"ABC" -> type1
"ACC" -> type1
"a8 219" -> type2
"c 827" -> type2
"ASDF 123" -> type2
"123123" -> type3
...

Ich suche nach einer maschinellen Lerntechnik, um dieses Muster anhand von Trainingsdaten selbst zu lernen. Ich habe bereits versucht, einige Prädiktorvariablen (z. B. Wortlänge, Anzahl der Sonderzeichen, ...) selbst zu definieren, und dann ein neuronales Netzwerk verwendet, um die Kategorie zu lernen und vorherzusagen. Aber das ist eigentlich nicht das, was ich will. Ich möchte eine Technik, um das Muster für jede Kategorie für sich zu lernen - sogar um Muster zu lernen, an die ich nie gedacht habe.

Also gebe ich dem Algorithmus Lerndaten (bestehend aus den Beispielen für Wortkategorien) und möchte, dass er Muster für jede Kategorie lernt, um später die Kategorie aus ähnlichen oder gleichen Wörtern vorherzusagen.

Gibt es eine hochmoderne Möglichkeit, dies zu tun?

Danke für Ihre Hilfe

chresse
quelle
Aus meiner Sicht können Sie Folgendes tun: cistrome.org/cr/images/Figure4.png , aber anstelle von ACGT können Sie Muster wie "Zahl, Großbuchstaben, Kleinbuchstaben, Leerzeichen" usw. verwenden.
German Demidov
@ GermanDemidov danke für deinen Kommentar. Ich habe schon über so etwas nachgedacht. Aber ich möchte eigentlich, dass der Lernalgorithmus es selbst macht und die Muster erkennt. (Ich weiß nicht, ob es für ML möglich ist).
Chresse
Eigentlich sind diese Muster maschinelles Lernen. Natürlich können Sie dies mit maschinellem Lernen tun, aber eine Person muss zuerst eine Merkmalsextraktion durchführen, bevor sie es als Eingabe für den ML-Algorithmus gibt. Welche Funktionen würden Sie aus diesen Beispielen extrahieren? Ich kann über Hash-Funktionen nachdenken, aber es funktioniert ziemlich schlecht für Zeichenfolgen mit ungleicher Länge. Da Sie also eine Möglichkeit finden, Features zu extrahieren, können Sie ML-Methoden verwenden. Sie können auch etwas wie den Levenshtein-Abstand zwischen Symbolen verschiedener Klassen tun, sie gruppieren und den Mindestabstand zu Zentroiden für die Klassifizierung verwenden.
Deutsch Demidov
@chresse Vielleicht möchten Sie Ihrer Frage das unbeaufsichtigte Lern- Tag hinzufügen . Um dies mit neuronalen Netzen zu tun, könnte dieses LeCun-Papier von Interesse sein. Da ich nicht viel Erfahrung mit Text Mining oder neuronalen Netzen habe, kann ich nicht sagen, wie gut dieser Ansatz sein könnte.
GeoMatt22
1
Transformieren Sie Ihre Vektoren also mit Funktionen, die Sie natürlich verwenden (u - Großbuchstaben, l - Kleinbuchstaben, n - Zahl, s - Leerzeichen), sodass Ihre Vektoren "ABC" - "uuu", "a8 219" - "lnsnnn" usw. sind auf. Dann müssen Sie beispielsweise mit diesem Algorithmus ein Entfernungsmaß einführen: en.wikipedia.org/wiki/Smith –Waterman_algorithm. Danach können Sie eine Klassifizierung / Clusterisierung / Visualisierung Ihrer Daten durchführen.
Deutsch Demidov

Antworten:

6

Könnte Ihr Problem so formuliert werden, dass Sie die regulären Ausdrücke ermitteln möchten, die den Zeichenfolgen in jeder Kategorie entsprechen? Dies ist ein Problem der "Regex-Erzeugung", eine Teilmenge des Problems der Grammatikinduktion (siehe auch die Website von Alexander Clark ).

Das Problem mit regulären Ausdrücken ist einfacher. Ich kann Sie auf Code frak und RegexGenerator verweisen . Der Online-RegexGenerator ++ enthält Verweise auf seine wissenschaftlichen Arbeiten zum Problem.

schwärzt
quelle
5

Sie können wiederkehrende neuronale Netze ausprobieren, bei denen Ihre Eingabe eine Folge der Buchstaben im Wort und Ihre Ausgabe eine Kategorie ist. Dies entspricht Ihren Anforderungen, sodass Sie keine Funktionen von Hand codieren.

Damit diese Methode tatsächlich funktioniert, benötigen Sie jedoch einen ziemlich großen Trainingsdatensatz.

Sie können verweisen beaufsichtigte Sequence Kennzeichnung mit Recurrent Neural Networks von Alex Graves Kapitel 2 für weitere Details.

Dies ist ein Link zum Preprint

Arun Jose
quelle
1
Könnten Sie ein vollständiges Zitat für Ihre endgültige Referenz hinzufügen, falls der Link "preprint.pdf" in Zukunft unterbrochen wird? (Ich glaube, das ist das relevante Kapitel?)
GeoMatt22