svalabs/cross-electra-ms-marco-german-uncased

svalabs
Clasificación de texto

En este repositorio, presentamos nuestro cross-encoder alemán sin distinción de mayúsculas y minúsculas para la Recuperación de Pasajes. Este modelo se entrenó sobre la base del modelo alemán electra uncased del grupo german-nlp-group y se afinó como un cross-encoder para la Recuperación de Pasajes utilizando el paquete sentence-transformers. Para este propósito, traducimos el conjunto de datos MSMARCO-Passage-Ranking utilizando el modelo de traducción fairseq-wmt19-en-de.

Como usar

Con el paquete sentence-transformers (ver UKPLab/sentence-transformers en GitHub para más detalles):

from sentence_transformers.cross_encoder import CrossEncoder

cross_model = CrossEncoder("svalabs/cross-electra-ms-marco-german-uncased")

Ejemplo de Búsqueda Semántica:

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

K = 3 # número de rangos principales a recuperar

docs = [
"Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.",
"Der Gepard jagt seine Beute.",
"Wir haben in der Agentur ein neues System für Zeiterfassung.",
"Mein Arzt sagt, dass mir dabei eher ein Orthopäde helfen könnte.",
"Einen Impftermin kann mir der Arzt momentan noch nicht anbieten.",
"Auf Kreta hat meine Tochter mit Muscheln eine schöne Sandburg gebaut.",
"Das historische Zentrum (centro storico) liegt auf mehr als 100 Inseln in der Lagune von Venedig.",
"Um in Zukunft sein Vermögen zu schützen, sollte man andere Investmentstrategien in Betracht ziehen.",
"Die Ära der Dinosaurier wurde vermutlich durch den Einschlag eines gigantischen Meteoriten auf der Erde beendet.",
"Bei ALDI sind die Bananen gerade im Angebot.",
"Die Entstehung der Erde ist 4,5 milliarden jahre her.",
"Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.",
"DAX dreht ins Minus. Konjunkturdaten und Gewinnmitnahmen belasten Frankfurt/Main."
]

queries = [
"dax steigt",
"dax sinkt",
"probleme mit knieschmerzen",
"software für urlaubsstunden",
"raubtier auf der jagd",
"alter der erde",
"wie alt ist unser planet?",
"wie kapital sichern",
"supermarkt lebensmittel reduziert",
"wodurch ist der tyrannosaurus aussgestorben",
"serien streamen"
]

# encode each query document pair
from itertools import product
combs = list(product(queries, docs))
outputs = cross_model.predict(combs).reshape((len(queries), len(docs)))

# print results
for i, query in enumerate(queries):
    ranks = np.argsort(-outputs[i])
    print("Query:", query)
    for j, r in enumerate(ranks[:3]):
        print(f"[{j}: {outputs[i, r]:.3f}]", docs[r])
    print("-"*96)

Funcionalidades

Clasificación de textos
Transformers
PyTorch

Casos de uso

Recuperación de Pasajes
Búsqueda Semántica
Clasificación de Textos