Dieses Paket unterstützt eine verallgemeinerte Architektur für die Sprachidentifikation ( LID ) und Dialektidentifikation ( DID ) unter Verwendung eines mit Keras erstellten Mehrschicht-Perzeptron-Erstellers. Unterstützt auch einen linearen SVM - Klassifizierer unter Verwendung von Scikit-Learn.
Ein Modell laden:
from idNet import idNet_Enrich
lid = idNet_Enrich("Path to model file", s3_bucket)
did = idNet_Enrich("Path to model file", s3_bucket)
S3_BUCKET nimmt einen STR mit einem optionalen S3 -Bucket zum Laden des Modells. Der Modell -Dateiname muss die erforderlichen Präfixe enthalten.
Sobald ein Deckelmodell geladen ist, hat es die folgenden Eigenschaften:
Verfahren | Beschreibung |
---|---|
lid.n_Features | Anzahl der Funktionen im Modell (dh Hashing -Mülleimer) |
lid.n_classes | Anzahl der Sprachen im Modell |
lid.lang_mappings | Wörterbuch von {"ISO_Code": "Language_Name"} Mappings für alle ISO 639-3-Codes |
LID.LANGS | Liste der ISO 639-3-Codes für Sprachen, die im aktuellen Modell vorhanden sind |
Sobald ein DID -Modell geladen ist, hat es die folgenden Eigenschaften:
Verfahren | Beschreibung |
---|---|
tat.n_Features | Anzahl der Funktionen in der Grammatik, mit der das Modell gelernt wurde |
tat.n_classes | Anzahl der Länder im Modell |
did.country_mappings | Wörterbuch von {"iso_code": "Country_Name"} Zuordnungen für alle verwendeten Ländercodes |
tat.countries | Liste der Ländercodes für regionale Dialekte (Länderebene) im aktuellen Modell vorhanden |
Belastete Modelle führen die folgenden Aufgaben aus:
Verfahren | Beschreibung |
---|---|
LID.PREDICT (Daten) | Nimmt eine Reihe von Saiten oder individuellen Saiten; Gibt eine Reihe von vorhergesagten Sprachcodes zurück |
Did.Predict (Daten) | Nimmt eine Reihe von Saiten oder individuellen Saiten; Gibt eine Reihe von vorhergesagten Ländercodes zurück |
HINWEIS: Model -Dateinamen müssen ".Did"/". Deckel" und ".mlp"/".
Um neue Modelle auszubilden, müssen die Trainingsdaten erstellt werden. Dieser Vorgang ist automatisiert; Anweisungen und Skripte finden Sie in den Verzeichnissen data_did und data_lid .
from idNet import idNet_Train
id = idNet_train()
Argument | Typ | Beschreibung |
---|---|---|
Typ | (str) | Ob Sie mit Sprache oder Dialektidentifikation arbeiten möchten |
Eingang | (str) | Pfad zum Eingangsordner |
Ausgabe | (str) | Pfad zum Ausgangsordner |
S3 = Falsch | (boolean) | Wenn wahr, verwenden Sie Boto3, um mit S3 -Eimer zu interagieren |
s3_bucket = "" | (str) | S3 -Eimer -Name als Zeichenfolge |
Spitzname = "Sprache" | (str) | Der Spitzname zum Speichern / Laden von Modellen |
divide_data = true | (boolean) | Wenn wahr, kriechen Sie nach Datensatz; Wenn falsch, laden Sie es einfach |
test_samples = 20 | (int) | Die Anzahl der Dateien für jede Klasse, die zum Testen verwendet werden soll |
Schwelle = 100 | (int) | Anzahl der vor der Sprache/des Land erforderlichen Dateien ist im Modell enthalten |
sample_per_epoch = 5 | (int) | Anzahl der Proben, die pro Training Epoche verwendet werden sollen |
Sprache = "" | (str) | Denn an, gibt die Sprache des aktuellen Modells an |
lid_sample_size = 200 | (int) | Für Deckel die Anzahl der Zeichen pro Probe zulässt |
did_sample_size = 1 | (int) | Denn die Anzahl der 100 -Wort -Proben zum Kombinieren |
PREANNOTATE_CXG = FALSE | (boolean) | Für tat, wenn wahre Anreicherung und speichern Sie alle CXG -Vektoren |
preanNotated_cxg = false | (boolean) | Denn, wenn True nur vorab angereicherte CXG-Vektoren laden, |
CXG_WORKERS = 1 | (int) | Denn, wenn der Datensatz vor der Anreiz angereichert, die Anzahl der zu verwendenden Arbeitnehmer |
class_constraints = [] | (Liste der STRs) | Option, die Anzahl der Klassen einzuschränken |
merge_dict = {} | (Diktat) | Original: Neue Namensschlüssel |
id.train()
Argument | Typ | Beschreibung |
---|---|---|
model_type = "mlp" | (str) | MLP oder SVM |
LID_Features = 524288 | (int) | Anzahl der Charaktere n-Gramm-Merkmale, die nur Hashing ermöglichen |
lid_ngrams = (1,3) | (Tupel der INTs) | Bereich von N-Gramm zu Hash |
did_grammar = ".grammar.p" | (str) | Name der C2XG -Grammatik für Annotation |
c2xg_workers = 1 | (int) | Denn die Anzahl der Arbeitnehmer für C2XG -Anreicherungen |
MLP_SISSE = (300, 300, 300) | (Tupel der INTs) | Größe und Anzahl der Schichten; zB, 3 Schichten bei jeweils 300 Neuronen |
cross_val = false | (boolean) | Ob Sie eine Kreuzvalidierung verwenden möchten, anstatt einen gehaltenen Testsatz |
Tropfen = 0,25 | (schweben) | Die Menge des Ausfalls für jede Ebene angewendet |
activation = "relu" | (str) | Die Art der Aktivierung; Übergibt einfach den Namen an Keras |
Optimierer = "SGD" | (str) | Die Art des Optimierungsalgorithmus; Übergibt einfach den Namen an Keras |