Commit
0bf24d3
·
verified ·
1 Parent(s): 8fc6b4a

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +56 -21
README.md CHANGED
@@ -102,27 +102,62 @@ pip install -U sentence-transformers
102
  Then you can load this model and run inference.
103
  ```python
104
  from sentence_transformers import SparseEncoder
105
-
106
- # Download from the 🤗 Hub
107
- model = SparseEncoder("Omartificial-Intelligence-Space/inference-free-splade-distilbert-base-Arabic-cased-nq")
108
- # Run inference
109
- queries = [
110
- "\u0643\u0645 \u0643\u0627\u0646 \u0639\u0645\u0631 \u0645\u064a\u0633\u064a \u0639\u0646\u062f\u0645\u0627 \u0628\u062f\u0623 \u062d\u064a\u0627\u062a\u0647 \u0627\u0644\u0645\u0647\u0646\u064a\u0629",
111
- ]
112
- documents = [
113
- 'ليونيل ميسي ولد وترعرع في وسط الأرجنتين، تم تشخيص ميسي بضعف هرمون النمو في طفولته. في سن 13 عاما، انتقل إلى إسبانيا للانضمام إلى برشلونة، التي وافقت على دفع تكاليف علاجه الطبي. بعد التقدم السريع من خلال أكاديمية شباب برشلونة، ظهر ميسي لأول مرة في التنافسية في سن 17 عاما في أكتوبر 2004. على الرغم من كونها عرضة للإصابة خلال مسيرته المبكرة، فقد أسس نفسه كلاعبًا أساسيًا للنادي في غضون السنوات الثلاث التالية، حيث أنهى 2007 كنهائي لكل من جائزة كرة الذهب و لاعب العالم للفيفا للعام، وهو إنجاز كرره في العام التالي. جاءت أول حملة غير منقطعة له في موسم 2008-2009, حيث ساعد برشلونة على تحقيق أول ثلاثية في كرة القدم الإسبانية. في سن 22 عاما، فاز ميسي بجائزة كرة الذهب و لاعب العالم للفيفا بالعام عن طريق حافة التصويت.',
114
- 'علم روسيا هناك تفسيرات مختلفة لما تعنيه الألوان على العلم الروسي. الأكثر شعبية هي كما يلي: اللون الأبيض يرمز إلى النبلاء والصراحة، والأزرق للاولاء والصدق والعفاف والعفاف، والأحمر للشجاعة والكرم والحب. [1]',
115
- 'جمهورية تكساس جمهورية تكساس (بالإسبانية:RepÃoblica de Tejas) كانت دولة مستقلة ذات سيادة في أمريكا الشمالية كانت موجودة من 2 مارس 1836 إلى 19 فبراير 1846. تحدها المكسيك من الغرب والجنوب الغربي، وخليج المكسيك من الجنوب الشرقي، ولايتين أمريكيتين لويزيانا وأركنساس من الشرق والشمال الشرقي، وأراضي الولايات المتحدة التي تشمل أجزاء من ولايات أوكلاهوما وأكنساس وكولورادو ووايومنغ الحالية في الولايات المتحدة من الشمال. كان مواطنو الجمهورية يعرفون باسم تكسيين.',
116
- ]
117
- query_embeddings = model.encode_query(queries)
118
- document_embeddings = model.encode_document(documents)
119
- print(query_embeddings.shape, document_embeddings.shape)
120
- # [1, 119547] [3, 119547]
121
-
122
- # Get the similarity scores for the embeddings
123
- similarities = model.similarity(query_embeddings, document_embeddings)
124
- print(similarities)
125
- # tensor([[6.5963, 0.2351, 1.0142]])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  ```
127
 
128
  <!--
 
102
  Then you can load this model and run inference.
103
  ```python
104
  from sentence_transformers import SparseEncoder
105
+ import numpy as np
106
+
107
+ def retrieve_top_k(model, queries, documents, top_k=3):
108
+ """
109
+ Given a SparseEncoder model, a list of queries and documents,
110
+ returns for each query the top_k documents ranked by SPLADE score.
111
+ """
112
+ # 1) Encode all queries and documents
113
+ query_embeddings = model.encode_query(queries) # shape: [n_queries, vocab_size]
114
+ document_embeddings = model.encode_document(documents) # shape: [n_docs, vocab_size]
115
+
116
+ # 2) Compute pairwise similarity
117
+ # result shape: [n_queries, n_docs]
118
+ sims = model.similarity(query_embeddings, document_embeddings).cpu().numpy()
119
+
120
+ # 3) For each query, pick top_k documents
121
+ all_results = []
122
+ for qi, query in enumerate(queries):
123
+ scores = sims[qi]
124
+ topk_idx = np.argsort(-scores)[:top_k]
125
+ results = [(idx, float(scores[idx]), documents[idx]) for idx in topk_idx]
126
+ all_results.append((query, results))
127
+ return all_results
128
+
129
+ if __name__ == "__main__":
130
+ # Load the SPLADE‐DistilBERT Arabic model
131
+ model_name = "Omartificial-Intelligence-Space/inference-free-splade-distilbert-base-Arabic-cased-nq"
132
+ print(f"Loading sparse model {model_name} …")
133
+ model = SparseEncoder(model_name)
134
+
135
+ # Example documents (could be paragraphs from your corpus)
136
+ documents = [
137
+ "ليونيل ميسي ولد وترعرع في وسط الأرجنتين، وتم تشخيصه بضعف هرمون النمو في طفولته.",
138
+ "علم روسيا هناك تفسيرات مختلفة لما تعنيه الألوان: الأبيض للنبلاء، الأزرق للصدق، الأحمر للشجاعة.",
139
+ "كانت جم��ورية تكساس دولة مستقلة في أمريكا الشمالية من 1836 إلى 1846.",
140
+ "تقع مكة المكرمة في غرب المملكة العربية السعودية، وهي أقدس مدن الإسلام.",
141
+ "برج خليفة في دبي هو أطول بناء من صنع الإنسان في العالم بارتفاع 828 متراً."
142
+ ]
143
+
144
+ # Example queries
145
+ queries = [
146
+ "من هو ليونيل ميسي؟",
147
+ "ما معنى ألوان علم روسيا؟",
148
+ "ما هي جمهورية تكساس؟",
149
+ "أين تقع مكة المكرمة؟",
150
+ "ما هو أطول مبنى في العالم؟"
151
+ ]
152
+
153
+ # Retrieve top-3 docs per query
154
+ results = retrieve_top_k(model, queries, documents, top_k=2)
155
+
156
+ # Print nicely
157
+ for query, hits in results:
158
+ print(f"\nQuery: {query}")
159
+ for rank, (doc_idx, score, doc_text) in enumerate(hits, start=1):
160
+ print(f" {rank}. (score={score:.4f}) {doc_text}")
161
  ```
162
 
163
  <!--