[PYTHON] Verwenden Sie keine zu starken Wörter ... Es sieht schwach aus ~ Lassen Sie uns prüfen, ob KI "sanft" umschrieben werden kann ~

Ich habe den Titel als AI geschrieben, aber bitte raten Sie mal. Bitte…

Ich denke, Sie sind Ingenieur, aber haben Sie Erfahrung damit, sich mit gewöhnlichen Menschen in technischen Begriffen zu unterhalten? Ich habe.

Diesmal ist mein Gesichtsausdruck also Ist es ein "übertragener" Ausdruck? Was ist ein verständlicherer Ausdruck? Lassen Sie uns das mit Hilfe des maschinellen Lernens beurteilen. Es ist ein Versuch.

TL;DR

Wir haben ein System vorgeschlagen und implementiert, das die Analyse der Bedeutungsäquivalenz durch das BERT + CNN-Kopf- und das Wortschwierigkeitsurteil des Lehrbuchkorpus kombiniert, um zu beurteilen, ob ein Satz auf einfache und aussagekräftige Weise umschrieben wird.

github https://github.com/MosasoM/Aizen Ich habe eine Quelle angegeben, die ich leicht ausprobieren kann. Ich denke, es wäre interessant, wenn Sie es versuchen könnten.

Standardtext Paraphrasentext score                    Implikationswahrscheinlichkeit             Schwierigkeit      
Bitte fassen Sie die Tagesordnung für das nächste Treffen in Papierform zusammen Fassen Sie die Tagesordnung in einem Lebenslauf für die nächste Sitzung zusammen 0.08641 0.744 9
Bitte fassen Sie die Tagesordnung für das nächste Treffen in Papierform zusammen Stellen Sie ein Blatt Papier zusammen, um es für das nächste Treffen zu besprechen inf 0.994 0

In diesem Fall ist "Bitte schreiben Sie auf, was Sie für das nächste Treffen auf Papier besprechen" eine angemessenere und sanftere Umschreibung.

Es gibt eine Sache, die ich als Gelegenheit zur Überprüfung meiner Kommunikation tun möchte, bei der häufig schwierige Wörter verwendet werden, und was bedeutet dieses Wort erneut? Ich denke, es ist wichtig zu denken, dass es auch wichtig ist.

Es gibt viele Orte, die robust sind, aber ich denke, es wäre großartig, wenn wir dies als Ausgangspunkt für die Herstellung besserer Produkte verwenden könnten.

Einführung

Sie müssen hier nicht lesen.

Ich denke, jeder verwendet mehr oder weniger technische Begriffe in seiner Arbeit. Allerdings sind Fachbegriffe so stark komprimiert, dass sie für diejenigen, die dieses Wissen teilen, sehr nützlich sind.

Ich denke jedoch, dass es eine bekannte Tatsache ist, dass Fachbegriffe für diejenigen, die sie nicht kennen, sehr unangenehm sein können. Ich bin jedoch besessen von der magischen Kraft der Menge an Informationen, über die Fachbegriffe verfügen, und ohne den Grad des Verständnisses der anderen Partei zu erkennen (es ist unrealistisch, fortzufahren, während ich zunächst das gesamte Wissen der anderen Partei überprüfe), verwende ich nur häufig die Fachbegriffe. Ich denke, dass es viele Menschen gibt, die die Erfahrung gemacht haben, in der Kommunikation zu versagen.

Ein solches Phänomen tritt häufig bei Menschen auf, die als "ausgezeichnet" mit einer großen Anzahl von Standardvokabeln bezeichnet werden. Es ist jedoch ein Verlust der Gesellschaft insgesamt, dass hervorragende Menschen aufgrund eines solchen Kommunikationsfehlers ihren Ruf verlieren. Ich denke es kann sein. Hier ist eine einfache Umschreibung des Textes erforderlich. Natürlich gibt es viele andere Situationen, in denen eine einfache Umschreibung von Sätzen erforderlich ist, beispielsweise beim Erklären für Kinder oder beim Unterrichten von Sprachanfängern. Darüber hinaus wird der Versuch, Sätze sanft zu paraphrasieren, als Verdienst angesehen, beispielsweise die Fähigkeit, das Denken zu vertiefen, indem die Definition von etwas bestätigt wird, das nicht nur für den Empfänger des Gesprächs, sondern auch für den Sprecher gilt. ..

Vor dem Hintergrund des obigen Hintergrunds fasst dieser Artikel zusammen, was wir mit dem Ziel getan haben, ein System aufzubauen, um festzustellen, ob ein Satz eine sanfte Umschreibung des Standardsatzes ist, und um Feedback zu geben.

↑ Ich verstehe keine schwierigen Wörter! Mit anderen Worten leicht !!!

Daher werden wir ein System erstellen, das bestimmt, ob es sich um eine einfache Paraphrase handelt, und Feedback gibt.

Da es sich um einen Prototyp handelt, gibt es viele Gouverneurspunkte. Soweit mir bekannt ist, werde ich die Governor-Punkte in jedem Kapitel durch Falten einfügen.

Methodenübersicht

Da es notwendig ist, "sanft" und "paraphrasiert" zu sein, werden wir ein "sanftes" Urteil und eine "paraphrase" Urteilsmaschine erstellen. Für "Sanftmut" haben wir den Schwierigkeitsgrad der einfach verwendeten Wörter verwendet, und für die Beurteilung der "Paraphrasierung" haben wir die Implikationsbeurteilungsaufgabe von BERT + CNN verwendet.

model_sumary_aizen.png

Governor Point 1 Es wäre gut, wenn nicht nur die Beurteilung von Wörtern, sondern auch die Beurteilung von Antwortausdrücken hinzugefügt werden könnte. Es gibt auch eine Lücke in der Implikationsbeurteilungsaufgabe, die später beschrieben wird.

Methode 1: Beurteilung der Güte

Führen Sie eine morphologische Analyse mit JUMAN ++ durch und führen Sie eine morphologische Analyse durch. ), Der Schwierigkeitsgrad wird anhand der ersten Klasse in Textbook Corpus Dictionary beurteilt. (Dank an Kurohashi / Kawahara Laboratory und National Institute of Japanese Language) (Ich habe mir eine Vokabeltabelle ausgeliehen, weil ich dachte, sie sei für Bildungs- und Forschungszwecke gedacht, aber wenn es ein Problem gibt, werde ich eine andere verwenden.)

Dieses Mal werden unabhängige Wörter, die nicht im Lehrbuchkorpus enthalten sind, nicht gezählt. Da ich kein sa-variables Wort wie ~ finden konnte und selten Wörter auf einer Ebene verwende, die nicht in einer einfachen Umschreibung in den Lehrbuchkorpus passt, habe ich die einfache Implementierung betont.

Wenn JUMAN ++ derzeit auf einem Mac installiert ist

brew install jumanpp

Es ist möglich mit. Dieses Mal werde ich es aus der Python-Bindung verwenden, also werde ich auch KNP installieren, aber da es mit pip eingegeben wird,

!pip install pyknp

Es ist in Ordnung. Ich versorge jeden von ihnen mit alten Informationen, aber jetzt kann ich es tun. Machen Sie als nächstes ein Wörterbuch zur Beurteilung von Schwierigkeiten. Das heißt, es ist nicht so schwierig, nur ein wenig das Lexikon zu verarbeiten und es als Wörterbuchtyp zu haben.


vocab = pd.read_csv("./Lehrbuch.txt",encoding="utf8",sep="\t")
vocab = vocab[["Wörter","Wörter読み","Erstes Schuljahr"]]
grade_dif_dic = {"klein_Bisherige":0,"klein_Rückseite":1,"Während ~":2,"Hoch":3}
vocab_diff_dic = {}
for line in vocab.values:
    if line[0] in vocab_diff_dic and grade_dif_dic[line[2]] < vocab_diff_dic[line[0]]:
        vocab_diff_dic[line[0]] = grade_dif_dic[line[2]]
    else:
        vocab_diff_dic[line[0]] = grade_dif_dic[line[2]]

Ich habe gerade ein Wörterbuch wie dieses erstellt. Pandas Karte Bitte vergib mir, dass ich es schlauer gemacht habe. Ich glaube nicht, dass es so viele gibt, aber wenn das Schlagwort getragen wird, versuche ich es besser zu interpretieren (nimm das mit dem frühesten Aussehen an).

Die morphologische Analyse ist fast wie im Beispiel

Referenz

Von diesen wird nur für diejenigen, deren Teilwörter unabhängige Wörter sind, der Schwierigkeitsgrad aus dem Wörterbuch erhalten und die Summe genommen. Speziell,

test1 = "Dies ist ein Testtext und unterscheidet sich von dem in diesem Experiment verwendeten Text."
result = jumanpp.analysis(test1)
d1 = 0
d1_cnt = 0
for mrph in result.mrph_list(): #Greifen Sie auf jede Morphologie zu
    if mrph.hinsi in indep:
        if mrph.genkei in vocab_diff_dic:
            d1 += vocab_diff_dic[mrph.genkei]
            d1_cnt += 1
            print(mrph.genkei,vocab_diff_dic[mrph.genkei])
print("Totale Schwierigkeit:{}Anzahl unabhängiger Wörter:{}Durchschnittliche Schwierigkeit:{}".format(d1,d1_cnt,d1/d1_cnt))
Totale Schwierigkeit:4 Anzahl unabhängiger Wörter:6 Durchschnittliche Schwierigkeit:0.6666666666666666

Es ist so.

Methode 2: Semantische Äquivalenzanalyse

Dies ist der Punkt, an dem der Gouverneur am meisten beteiligt ist. Seien Sie also bitte vorbereitet.

2-1: Datenaufbereitung

Dieses Mal werden wir BERT effektiv als Vorprozess für die Daten verwenden, sodass in diesem Kapitel nur beschrieben wird, wo die Daten ausgeliehen wurden. Da wir diesmal feststellen werden, ob die Bedeutungen gleich sind, werden wir den Datensatz zur Bestimmung der Auswirkungen als ähnliche Aufgabe verwenden. Außerdem habe ich die folgenden Daten verwendet, weil ich möchte, dass Sie die einfache Paraphrase beurteilen.

Nagaoka University of Technology Labor für natürliche Sprache Easy Japanese Corpus NTCIR-10 RITE2 [Daten zur Bewertung des textuellen Entailments des Kurohashi / Kawahara-Labors der Universität Kyoto](http://nlp.ist.i.kyoto-u.ac.jp/index.php?Textual%20Entailment%20%E8%A9%95%E4 % BE% A1% E3% 83% 87% E3% 83% BC% E3% 82% BF)

Von diesen wird der einfache japanische Korpus Ende März 2020 aufgrund der Schließung des Labors geschlossen, daher scheint es besser, ihn früher herunterzuladen.

Vielen Dank an den Autor jedes Datensatzes.

Wenn die Daten bis zu diesem Punkt erstellt werden, enthält das einfache japanische Dataset nur Implikationsdaten. Da die Anzahl der Daten groß ist, werden Daten mit einer großen Menge an Implikationsdaten unausgeglichen, was problematisch ist.

Daher wurden am Ende zwei verschiedene Sätze zufällig aus der obigen Datengruppe ausgewählt und kombiniert, um die nicht impliziten Daten aufzublasen und sie zwangsweise zu ausgeglichenen Daten zu machen.

Klicken Sie hier, um den Code zum Erstellen der obigen Daten
anzuzeigen
def data_load():
    train_x = []
    train_y = []
    
    true_count = 0
    
    entail_kyoto = ET.parse("/content/drive/My Drive/Aizen/Datas/entail_evaluation_set_label_conv.xml") #Kyoto University Corpus
    entail_kyoto_root = entail_kyoto.getroot()
    for child in entail_kyoto_root:
        temp = []
        if child.attrib["label"] == "Y":
            train_y.append(1)
            true_count += 1
        else:
            train_y.append(0)
        for gchild in child:
            temp.append(gchild.text)
        train_x.append(temp)
    RITE_names = ["dev_bc","dev_mc","testlabel_bc","testlabel_mc"]
    pos = ["F","B","Y"]
    neg = ["C","I","N"]
    for name in RITE_names: #Laden Sie RITE. Lesen Sie jeden Test und teilen Sie ihn später
        rite_file_path = "/content/drive/My Drive/Aizen/Datas/RITE2_JA_bc-mc-unittest_forOpenAccess/RITE2_JA_{}/RITE2_JA_{}.xml".format(name,name)
        rite_tree = ET.parse(rite_file_path)
        root = rite_tree.getroot()
        for child in root:
            temp = []
            if child.attrib["label"] in pos:
                train_y.append(1)
                true_count += 1
            else:
                train_y.append(0)
            for gchild in child:
                temp.append(gchild.text)
            train_x.append(temp)
    easy_jp = pd.read_csv("/content/drive/My Drive/Aizen/Datas/T15-2020.1.7.csv").values #Einfache japanische Lesung.
    for line in easy_jp:
        if line[1] != line[2]: #Nur der, der sich mit anderen Worten geändert hat
            train_y.append(1)
            train_x.append([line[1],line[2]])
            true_count += 1
    
	#Fügen Sie von hier aus, bis die richtigen und falschen Antworten gleich sind, zwei zufällige Sätze hinzu und blasen Sie die falschen Antworten auf.
    all_num = len(train_x)
    
    for i in range(2*true_count-all_num):
        left_raw = np.random.randint(all_num)
        left_col = np.random.randint(2)
        right_raw = np.random.randint(all_num)
        while left_raw == right_raw:
            right_raw = np.random.randint(all_num)
        right_col = np.random.randint(2)
        train_x.append([train_x[left_raw][left_col],train_x[right_raw][right_col]])
        train_y.append(0)
    
    
    
    return train_x,train_y

Governor Point 2
Da der Implikationsdatensatz grundsätzlich nur A → B oder A = B enthält, war es möglicherweise besser, A Daher ist es durchaus möglich, dass die mit diesem Modell erzielten Ergebnisse als allgemeine Implikationsbestimmungsaufgabe eine schlechte Generalisierungsleistung aufweisen. Diesmal reicht es jedoch aus, zu beurteilen, ob die einfache Paraphrase impliziert ist. Diesmal ist es also in Ordnung, da sie genügend einfache Paraphrasedaten für diesen Zweck enthält.

2-2

Als Modell verwende ich BERT, ein heißes Modell für die Verarbeitung natürlicher Sprache in letzter Zeit (oder eher vor einiger Zeit?). Ich habe nicht wirklich verstanden, was BERT ist, also habe ich auf die folgende Seite verwiesen. https://udemy.benesse.co.jp/ai/bert.html https://ainow.ai/2019/05/21/167211/ http://deeplearning.hatenablog.com/entry/transformer

Das diesmal verwendete Modell ist das BERT + CNN-Modell. Der BERT-Teil ist ziemlich schwer alleine zu trainieren. Als ich mich fragte, was ich tun sollte, fand ich die folgenden sehr dankbar. https://yoheikikuta.github.io/bert-japanese/ Gott. Vielen Dank.

Übrigens, da dies ein Satzstück ist, muss ich Lerndaten machen ... Hmm ...? https://qiita.com/hideki/items/1ec1c21c33326ad5615f

Eh, ist es zu bequem? Vielen Dank. Die Ansammlung großer Vorfahren hat es daher ermöglicht, Vektoren durch das Monstermodell BERT sofort zu erfassen.

Also werde ich den Kopfteil machen. Als armer Schüler konnte ich diesmal nicht genügend Computerressourcen vorbereiten, um jedes BERT zu optimieren. Daher optimiere ich nur den Hauptteil mit Google Colablatory. (Danke an Google)

Der von BERT erhaltene Vektor ist Wort für Wort. Geben Sie die Vektoren für zwei Dokumente ein und lösen Sie das Problem als Zwei-Klassen-Klassifikation mit derselben Bedeutung oder nicht.

Der Punkt, den ich hier ein wenig erfunden habe, ist, dass der Eingabevektor durch abwechselndes Einfügen der Vektoren von zwei Dokumenten erstellt wurde. Dies liegt daran, dass ich dachte, es wäre besser, einen Vektor mit Positionsinformationen zu haben, der nahe beieinander liegende Wörter näher beieinander platziert, als sie parallel anzuordnen.

BERT_con.png

Die obigen Vektoren werden von CNN klassifiziert. Die Konfiguration von CNN ist bei Keras wie folgt.

def make_network():
    x_in = Input((256,768,1))
    x = Conv2D(64,(3,3),padding="valid")(x_in)
    x = BatchNormalization()(x)
    x = Activation('relu')(x)
    x = Conv2D(64,(3,3),padding="valid")(x)
    x = BatchNormalization()(x)
    x = Activation('relu')(x)
    x = MaxPooling2D(pool_size=(3,3),strides=2,padding="same")(x)

    x = Conv2D(64,(2,2),padding="valid")(x)
    x = BatchNormalization()(x)
    x = Activation('relu')(x)
    x = Conv2D(128,(2,2),padding="valid")(x)
    x = BatchNormalization()(x)
    x = Activation('relu')(x)
    x = MaxPooling2D(pool_size=(3,3),strides=2,padding="same")(x)

    x = GlobalAveragePooling2D()(x)

    x = Dense(2)(x)
    x = Activation("softmax")(x)
    model = Model(x_in,x)
    return model

Nun, es ist nur ein CNN ohne besondere Änderungen.

Governor Point 3 Wenn ich nur die horizontale Richtung betrachte, habe ich das Gefühl, dass die Verwendung eines Filters wie 1 * 5 anstelle eines 3 * 3-Filters relativ weit sichtbar ist und die Anzahl der Parameter reduziert werden kann.
Der Generator, der die obigen Daten in das Modell wirft, sieht folgendermaßen aus.
def data_gen(data_X,data_y,vectorian,batchsize=32):
    d_cnt = 0
    x = []
    y = []
    while True:
        for i in range(len(data_X)):
            t_l = str(data_X[i][0])
            t_r = str(data_X[i][1])

            t_l = vectorian.fit(t_l).vectors
            t_r = vectorian.fit(t_r).vectors


            itp = range(t_l.shape[1])
            in_x = np.insert(t_r,itp,t_l[:,itp],axis=1)
            
            x.append(in_x)
            
            if data_y[i] == 1:
                y.append([0,1])
            else:
                y.append([1,0])
            
            d_cnt += 1
            
            if d_cnt == batchsize:
                inputs = np.array(x).astype(np.float32)
                inputs = inputs.reshape(batchsize,256,768,1)
                targets = np.array(y)
                x = []
                y = []
                d_cnt = 0
                yield inputs,targets

Nun, es ist nicht interessant. Also fing ich an zu lernen

Es dauerte eine Epoche pro Stunde, daher war das Lernen bei Google Colablatory ein Schmerz. Die Genauigkeit von 3 bis 5 Epochen ist wie folgt (ich habe die Ausgabe von 1 bis 2 Epochen aufgrund der GPU-Beschränkung auf dem Weg und der neuen Laufzeit gelöscht.)

Epoch 1/1
1955/1955 [==============================] - 3846s 2s/step - loss: 0.1723 - categorical_accuracy: 0.9396 - val_loss: 0.1632 - val_categorical_accuracy: 0.9398
Epoch 1/1
1955/1955 [==============================] - 3852s 2s/step - loss: 0.1619 - categorical_accuracy: 0.9436 - val_loss: 0.1477 - val_categorical_accuracy: 0.9487
Epoch 1/1
1955/1955 [==============================] - 3835s 2s/step - loss: 0.1532 - categorical_accuracy: 0.9466 - val_loss: 0.1462 - val_categorical_accuracy: 0.9482

Es scheint, dass der Verlust immer noch sinken wird, aber es ist schwierig, an der Vorderseite des PCs festzuhalten. Bitte verzeihen Sie mir ... Übrigens wird es diesmal erzwungen, aber da es sich um ausgeglichene Daten handelt, wird F1 nicht berechnet ~~ (störend) ~~

Wenn es sich um ausgewogene Daten handelt, denke ich, dass die Genauigkeit kein so seltsames Ergebnis liefert.

Ausgabe

Sie können das obige Modell und Wörterbuch verwenden, um eine Beurteilung der Satzumschreibung und einen Schwierigkeitsgrad vorzunehmen. Bereiten Sie gegebenenfalls eine Ausgabefunktion vor.

def texts_to_inputs(text1,text2):
    t_l = text1
    t_r = text2

    t_l = vectorian.fit(t_l).vectors
    t_r = vectorian.fit(t_r).vectors

    itp = range(t_l.shape[1])
    in_x = np.insert(t_r,itp,t_l[:,itp],axis=1).reshape(1,256,768,1)
    return in_x

def easy_trans_scores(test1,test2,vocab_diff_dic):
    test_x = texts_to_inputs(test1,test2)
    p = model.predict(test_x)

    result = jumanpp.analysis(test1)
    d1 = 0
    d1_cnt = 0
    for mrph in result.mrph_list(): #Greifen Sie auf jede Morphologie zu
        if mrph.hinsi in indep:
            if mrph.genkei in vocab_diff_dic:
                d1 += vocab_diff_dic[mrph.genkei]
                d1_cnt += 1
    print("Implikationswahrscheinlichkeit:{:.3g}Totale Schwierigkeit:{}Anzahl unabhängiger Wörter:{}Durchschnittliche Schwierigkeit:{}".format(p[0][1],d1,d1_cnt,d1/d1_cnt))
    print("total score:{:.5g}".format(p[0][1]/d1))

Lassen Sie uns zunächst Implikation / (Gesamtschwierigkeit) als Punktzahl verwenden. Der Grund für die Gesamtschwierigkeit und nicht für die durchschnittliche Schwierigkeit ist, dass ich dachte, es sei besser, kurze und prägnante Sätze gut zu bewerten. Nun, es gibt einen Fehler, dass wenn der Gesamtschwierigkeitsgrad 0 ist, der Wert immer inf wird und es keine Implikationen gibt ... Diesmal ist es okay ...

Ergebnis

Standardtext Paraphrasentext score                  Implikationswahrscheinlichkeit            Schwierigkeit               
Dies ist ein Testtext und unterscheidet sich von dem in diesem Experiment verwendeten Text. Dies ist ein Prozessurteil 0.88207 0.882 1
Dies ist ein Testtext und unterscheidet sich von dem in diesem Experiment verwendeten Text. Dieser Text ist nur für den Test vorbereitet und unterscheidet sich von dem tatsächlich verwendeten. 0.20793 0.832 4
Dies ist ein Testtext und unterscheidet sich von dem in diesem Experiment verwendeten Text. Dies ist ein Test 0.53867 0.539 1
Bitte fassen Sie die Tagesordnung für das nächste Treffen in Papierform zusammen Fassen Sie die Tagesordnung in einem Lebenslauf für die nächste Sitzung zusammen 0.086415 0.744 9
Bitte fassen Sie die Tagesordnung für das nächste Treffen in Papierform zusammen Stellen Sie ein Blatt Papier zusammen, um es für das nächste Treffen zu besprechen inf 0.994 0
Vollständige Hypnose, die die fünf Sinne und die Wahrnehmung des spirituellen Drucks der anderen Partei kontrolliert, die den Moment der Befreiung schon einmal gesehen hat und das Thema irreführen kann. Wenn Sie den Moment der Lösung auch nur einmal sehen, werden Sie das Objekt sicherlich falsch verstehen. 0.063651 0.287 5
Vollständige Hypnose, die die fünf Sinne und die Wahrnehmung des spirituellen Drucks der anderen Partei kontrolliert, die den Moment der Befreiung schon einmal gesehen hat und das Thema irreführen kann. Sie können das Motiv falsch fühlen lassen, indem Sie die Person manipulieren, die den Moment der Lösung einmal gesehen hat. 0.11004 0.654 7

Die Paraphrasen, bei denen die höchste Punktzahl festgestellt wird, sind fett gedruckt. Ist es nicht ein einigermaßen überzeugendes Ergebnis?

Übrigens, Herr Aizen ... Bitte geben Sie mir ein paar freundliche Worte ...

Ergebnis 2 (Addition) Mit anderen Worten, guter Kampf und die Macht von Kim Roger

Mit diesem System habe ich einen Freund paraphrasiert und ein gutes Match mit Königentscheidung gespielt (1-gegen-1-Spiel, aber wenn ich gewinne, werde ich der König sein). Es wird so aussehen, wenn es zu einem Spiel gemacht wird? Es ist wie es ist.

Klicken Sie hier für das Thema.

** Der Mann, der all den Reichtum, den Ruhm, die Macht und die Welt bekam. Gold Roger, der Piratenkönig. Ein Wort, das er bei seinem Tod gab, trieb die Menschen ans Meer. ** ** **

Dies ist der Mund des OP einer bestimmten nationalen Animation, die jeder kennt.

Erster Zug (I) 1. Runde

** Geld, Position, Macht Der Mann, der alles auf dieser Welt genommen hat, der Piratenkönig Gold Roger Die Worte, die er vor seinem Tod sagte, ließen die Menschen zum Meer gehen **

Punktzahl: Implikationswahrscheinlichkeit: 0,696 Gesamtschwierigkeit: 8 ** Gesamtpunktzahl: 0,087022 **

Nun, ich denke es ist ein guter erster Schritt. Da die Implikationswahrscheinlichkeit etwas gering ist, habe ich das Gefühl, dass ich zu viel angegriffen habe, um den Schwierigkeitsgrad zu senken.

Zweiter Zug (gegenüber) 1. Runde

** "Der Mann, der all das Geld, die Popularität, die Macht und die Welt bekam, 'Piratenkönig Gold Roger' Das Wort, das er kurz vor seinem Tod sagte, schickte Menschen ans Meer" **

Punktzahl: Implikationswahrscheinlichkeit: 0,974 Gesamtschwierigkeit: 14 ** Gesamtpunktzahl: 0,069588 **

Es wird mit Implikationen gesprochen, aber ich bin immer noch besser in der Gesamtpunktzahl. Wenn Sie nicht angreifen, indem Sie Wörter umschreiben, wird es so sein. Es ist überraschend strategisch.

Erster Zug (I) 2. Runde

** Geld, Popularität, Macht, der Mann, der alles auf der Welt hat, 'Piratenkönig Gold Roger' Die Worte, die er vor seinem Tod sagte, ließen die Leute aufs Meer gehen **

Punktzahl: Implikationswahrscheinlichkeit: 0,917 Gesamtschwierigkeit: 9 ** Gesamtpunktzahl: 0,10194 **

Da die andere Partei eine höhere Implikationswahrscheinlichkeit hatte, konnte ich die Implikationswahrscheinlichkeit und die Gesamtpunktzahl erheblich verbessern, indem ich sie als Modell einbezog. Dies ist ** gewonnen ** (Flagge)

2. Runde (gegenüber) 2. Runde (Gewinnsatz)

** Der Mann, der all das Geld, die Popularität, die Macht und den Weltpiratenkönig Kim Roger bekam. Das Wort, das er sagte, als er starb, schickte alle ans Meer **

Punktzahl: Implikationswahrscheinlichkeit: 0,952 Gesamtschwierigkeit: 9 ** Gesamtpunktzahl: 0,10581 **

e ···?

hat verloren. Obwohl es sich um eine enge Marge handelt, verliert man. Wahrscheinlich war der Gewinner ** Kim Roger **. Dies reduziert den Schwierigkeitsgrad erheblich, während die Implikationswahrscheinlichkeit erhalten bleibt. (Als ich das Ergebnis sah, lachte ich.)

Nun, es ist auch ein interessanter Teil dieses Systems, dass Sie eine lustige Paraphrase haben können, die über ein solches Match entscheidet. ~~ Weil es hier und da schlampig ist ~~ Wie interpretierst du dieses System? Sie können um Punkte konkurrieren, die wettbewerbsfähig sind, einschließlich Meta-Wettbewerb, und Sie können auch um Punkte im Rahmen des gesunden Menschenverstandes kämpfen, und jeder hat seinen eigenen Spaß.

Zusammenfassung und Zukunftsaussichten

Obwohl es einige Macken gab, konnte ich irgendwie beurteilen, ob ich eine sanfte Paraphrase machen konnte oder nicht, indem ich das Implikationsurteil und das Schwierigkeitsurteil kombinierte.

** Das ist ziemlich interessant für mich ** (Es ist auch interessant, die Frage zu stellen: "Ist es gut umschrieben?" Oder ist ein solcher Satz nicht schwierig?) Also möchte ich daraus ein Spiel oder einen Dienst machen. (Ich möchte ein Online-Ranking usw. implementieren.) (Ich kann es jetzt nicht tun, weil ich nicht das Wissen habe, um Dienste aufzubauen.)

Wie ich eingangs erwähnt habe, können Sie, wenn Sie dies als Spiel genießen, es möglicherweise genießen und gleichzeitig einen Datensatz mit einfachen Paraphrasen erstellen, die von Menschen erstellt wurden, und indem Sie diese Daten verwenden, können Sie interessantere Überlegungen anstellen. Ich denke darüber nach.

Dieses Modell usw. (für diejenigen, die es ausprobieren möchten)

https://github.com/MosasoM/Aizen

Es ist passiert in. Ich habe es in das Repository geschrieben,

  • JUMAN++
  • text-vectorian
  • BERT Japanisch gelerntes Modell (https://yoheikikuta.github.io/bert-japanese/)

Wenn Sie sich (wahrscheinlich) Aizen.ipynb ansehen, ist es ziemlich einfach, es zu versuchen. Wenn Sie interessante Ergebnisse haben oder dieses Bewertungssystem mögen, würde ich es begrüßen, wenn Sie einen Kommentar abgeben könnten.

Vielen Dank

Dieser Artikel basiert auf der Ausleihe von BERT-geschulten Modellen und verschiedenen Datensätzen. Wie im Text erwähnt, vielen Dank an alle, die diese gepflegt haben.

Recommended Posts

Verwenden Sie keine zu starken Wörter ... Es sieht schwach aus ~ Lassen Sie uns prüfen, ob KI "sanft" umschrieben werden kann ~
Überprüfen Sie, ob mod_wsgi erstellt werden kann