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