spark-nlp 6.0.1rc1__py2.py3-none-any.whl → 6.0.2__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of spark-nlp might be problematic. Click here for more details.

Files changed (36) hide show
  1. {spark_nlp-6.0.1rc1.dist-info → spark_nlp-6.0.2.dist-info}/METADATA +13 -6
  2. {spark_nlp-6.0.1rc1.dist-info → spark_nlp-6.0.2.dist-info}/RECORD +36 -30
  3. {spark_nlp-6.0.1rc1.dist-info → spark_nlp-6.0.2.dist-info}/WHEEL +1 -1
  4. sparknlp/__init__.py +4 -2
  5. sparknlp/annotator/cv/__init__.py +2 -0
  6. sparknlp/annotator/cv/florence2_transformer.py +180 -0
  7. sparknlp/annotator/cv/gemma3_for_multimodal.py +5 -10
  8. sparknlp/annotator/cv/internvl_for_multimodal.py +280 -0
  9. sparknlp/annotator/cv/janus_for_multimodal.py +8 -13
  10. sparknlp/annotator/cv/llava_for_multimodal.py +1 -1
  11. sparknlp/annotator/cv/paligemma_for_multimodal.py +7 -7
  12. sparknlp/annotator/cv/phi3_vision_for_multimodal.py +1 -1
  13. sparknlp/annotator/cv/qwen2vl_transformer.py +1 -1
  14. sparknlp/annotator/cv/smolvlm_transformer.py +7 -13
  15. sparknlp/annotator/date2_chunk.py +1 -1
  16. sparknlp/annotator/document_character_text_splitter.py +8 -8
  17. sparknlp/annotator/document_token_splitter.py +7 -7
  18. sparknlp/annotator/embeddings/bge_embeddings.py +21 -19
  19. sparknlp/annotator/embeddings/snowflake_embeddings.py +15 -15
  20. sparknlp/annotator/openai/openai_completion.py +3 -4
  21. sparknlp/annotator/seq2seq/m2m100_transformer.py +1 -1
  22. sparknlp/annotator/seq2seq/mistral_transformer.py +2 -3
  23. sparknlp/annotator/seq2seq/nllb_transformer.py +1 -1
  24. sparknlp/annotator/seq2seq/qwen_transformer.py +26 -25
  25. sparknlp/annotator/spell_check/context_spell_checker.py +1 -1
  26. sparknlp/base/prompt_assembler.py +1 -1
  27. sparknlp/common/properties.py +7 -7
  28. sparknlp/internal/__init__.py +19 -0
  29. sparknlp/partition/__init__.py +16 -0
  30. sparknlp/partition/partition.py +244 -0
  31. sparknlp/partition/partition_properties.py +257 -0
  32. sparknlp/partition/partition_transformer.py +196 -0
  33. sparknlp/reader/pdf_to_text.py +50 -4
  34. sparknlp/reader/sparknlp_reader.py +56 -52
  35. sparknlp/training/spacy_to_annotation.py +7 -7
  36. {spark_nlp-6.0.1rc1.dist-info → spark_nlp-6.0.2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: spark-nlp
3
- Version: 6.0.1rc1
3
+ Version: 6.0.2
4
4
  Summary: John Snow Labs Spark NLP is a natural language processing library built on top of Apache Spark ML. It provides simple, performant & accurate NLP annotations for machine learning pipelines, that scale easily in a distributed environment.
5
5
  Home-page: https://github.com/JohnSnowLabs/spark-nlp
6
6
  Author: John Snow Labs
@@ -29,6 +29,13 @@ Classifier: Topic :: Text Processing :: Linguistic
29
29
  Classifier: Topic :: Scientific/Engineering
30
30
  Classifier: Typing :: Typed
31
31
  Description-Content-Type: text/markdown
32
+ Dynamic: author
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: description-content-type
36
+ Dynamic: home-page
37
+ Dynamic: keywords
38
+ Dynamic: summary
32
39
 
33
40
  # Spark NLP: State-of-the-Art Natural Language Processing & LLMs Library
34
41
 
@@ -95,7 +102,7 @@ $ java -version
95
102
  $ conda create -n sparknlp python=3.7 -y
96
103
  $ conda activate sparknlp
97
104
  # spark-nlp by default is based on pyspark 3.x
98
- $ pip install spark-nlp==6.0.1 pyspark==3.3.1
105
+ $ pip install spark-nlp==6.0.2 pyspark==3.3.1
99
106
  ```
100
107
 
101
108
  In Python console or Jupyter `Python3` kernel:
@@ -161,7 +168,7 @@ For a quick example of using pipelines and models take a look at our official [d
161
168
 
162
169
  ### Apache Spark Support
163
170
 
164
- Spark NLP *6.0.1* has been built on top of Apache Spark 3.4 while fully supports Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x, and 3.5.x
171
+ Spark NLP *6.0.2* has been built on top of Apache Spark 3.4 while fully supports Apache Spark 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x, and 3.5.x
165
172
 
166
173
  | Spark NLP | Apache Spark 3.5.x | Apache Spark 3.4.x | Apache Spark 3.3.x | Apache Spark 3.2.x | Apache Spark 3.1.x | Apache Spark 3.0.x | Apache Spark 2.4.x | Apache Spark 2.3.x |
167
174
  |-----------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|
@@ -191,7 +198,7 @@ Find out more about 4.x `SparkNLP` versions in our official [documentation](http
191
198
 
192
199
  ### Databricks Support
193
200
 
194
- Spark NLP 6.0.1 has been tested and is compatible with the following runtimes:
201
+ Spark NLP 6.0.2 has been tested and is compatible with the following runtimes:
195
202
 
196
203
  | **CPU** | **GPU** |
197
204
  |--------------------|--------------------|
@@ -208,7 +215,7 @@ We are compatible with older runtimes. For a full list check databricks support
208
215
 
209
216
  ### EMR Support
210
217
 
211
- Spark NLP 6.0.1 has been tested and is compatible with the following EMR releases:
218
+ Spark NLP 6.0.2 has been tested and is compatible with the following EMR releases:
212
219
 
213
220
  | **EMR Release** |
214
221
  |--------------------|
@@ -3,7 +3,7 @@ com/johnsnowlabs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
3
3
  com/johnsnowlabs/ml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  com/johnsnowlabs/ml/ai/__init__.py,sha256=YQiK2M7U4d8y5irPy_HB8ae0mSpqS9583MH44pnKJXc,295
5
5
  com/johnsnowlabs/nlp/__init__.py,sha256=DPIVXtONO5xXyOk-HB0-sNiHAcco17NN13zPS_6Uw8c,294
6
- sparknlp/__init__.py,sha256=bmd2osfOpjsl6fkGAziSKpz0F5tFXASPI-9L-0GJatQ,13791
6
+ sparknlp/__init__.py,sha256=infpZcS--eZOsSSMengyAGWuh2IBDcKB9fvjQqQ6Keo,13814
7
7
  sparknlp/annotation.py,sha256=I5zOxG5vV2RfPZfqN9enT1i4mo6oBcn3Lrzs37QiOiA,5635
8
8
  sparknlp/annotation_audio.py,sha256=iRV_InSVhgvAwSRe9NTbUH9v6OGvTM-FPCpSAKVu0mE,1917
9
9
  sparknlp/annotation_image.py,sha256=xhCe8Ko-77XqWVuuYHFrjKqF6zPd8Z-RY_rmZXNwCXU,2547
@@ -13,10 +13,10 @@ sparknlp/util.py,sha256=PDbD6c9y0IAtzXK5dzhBSqghouKHpXNVnXyWS2Y20UU,1276
13
13
  sparknlp/annotator/__init__.py,sha256=G746SY8dRM_AOf-gaoSKlh7D-2TKGpqqHhGr4XF-b2A,3534
14
14
  sparknlp/annotator/chunk2_doc.py,sha256=IJ3_vQHvzjqono90AZUzZ67QSYjwquuMYbN9_HSOVcg,3141
15
15
  sparknlp/annotator/chunker.py,sha256=8nz9B7R_mxKxcfJRfKvz2x_T29W3u4izE9k0wfYPzgE,5174
16
- sparknlp/annotator/date2_chunk.py,sha256=0Z0ofEVes8ZMxvgnXbGZX91IfGxI3CdYTRMALabsJUc,3152
17
- sparknlp/annotator/document_character_text_splitter.py,sha256=dFNhik4IM0K9o65S3vHz-Txcv8AswRCYh5o1uEZOvy8,9864
16
+ sparknlp/annotator/date2_chunk.py,sha256=tW3m_LExmhx8LMFWOGXqMyfNRXSr2dnoEHD-6DrnpXI,3153
17
+ sparknlp/annotator/document_character_text_splitter.py,sha256=oNrOKJAKO2h1wr0bEuSqYrrltIU_Y6J6cTHy70yKy6s,9877
18
18
  sparknlp/annotator/document_normalizer.py,sha256=hU2fG6vaPfdngQapoeSu-_zS_LiBZNp2tcVBGl6eTpk,10973
19
- sparknlp/annotator/document_token_splitter.py,sha256=gRpSkZQFhNTvb0c8CII6LlTYOVTLSro1u-luDzxnYps,7483
19
+ sparknlp/annotator/document_token_splitter.py,sha256=-9xbQ9pVAjcKHQQrSk6Cb7f8W1cblCLwWXTNR8kFptA,7499
20
20
  sparknlp/annotator/document_token_splitter_test.py,sha256=NWO9mwhAIUJFuxPofB3c39iUm_6vKp4pteDsBOTH8ng,2684
21
21
  sparknlp/annotator/graph_extraction.py,sha256=b4SB3B_hFgCJT4e5Jcscyxdzfbvw3ujKTa6UNgX5Lhc,14471
22
22
  sparknlp/annotator/lemmatizer.py,sha256=w1nNMln2HgM4O1DOaISo5AGyzzFHuaIDQqWFcr4JmcA,8970
@@ -82,18 +82,20 @@ sparknlp/annotator/cleaners/cleaner.py,sha256=r_0ImrtGT-S-ytOknKoP844FVSv0J9YVKQ
82
82
  sparknlp/annotator/cleaners/extractor.py,sha256=nml8mnOToZYPF5fTp9VWdDfnWTXryLDzp3RWfQoJkWY,5805
83
83
  sparknlp/annotator/coref/__init__.py,sha256=SG8MAaVxQpoYYAsyKaoOlvlHjorDzj3DHt4nnEdBWm8,53
84
84
  sparknlp/annotator/coref/spanbert_coref.py,sha256=AXWJhvVquY2uoApO_Np1fz7_KyJhxnZB4i-xk78sBfc,8407
85
- sparknlp/annotator/cv/__init__.py,sha256=ySHQ_8pumJFESLUtDqvb0X9oX6He-w_-Jw--Z3ASU5w,1473
85
+ sparknlp/annotator/cv/__init__.py,sha256=hUeHb0iTDBZCS3sDAjypgs8PzU3eMgKtBa8xDkCueWE,1591
86
86
  sparknlp/annotator/cv/blip_for_question_answering.py,sha256=At7L5pPBNDR1r-JGLKM5b3dTrq5Ecz9r0M1gToUVZTs,6551
87
87
  sparknlp/annotator/cv/clip_for_zero_shot_classification.py,sha256=_1pLc9BiFrFN10eJPCDJLJT-vdnTSG9OnB25Y_kKJIA,7528
88
88
  sparknlp/annotator/cv/convnext_for_image_classification.py,sha256=KzaAlYW5M2l73zUozzgg8_p14eGDz9k9PYVAUZLN25k,11874
89
- sparknlp/annotator/cv/gemma3_for_multimodal.py,sha256=dh0KjTJGqpD-yN7d2f2auMbKLwL5w74Rhgai5y0LeHw,13053
90
- sparknlp/annotator/cv/janus_for_multimodal.py,sha256=-TlAfeZ3A8iMJ23Q05Tx_KObgBfy9-qYAN9gAPCvjbw,14499
91
- sparknlp/annotator/cv/llava_for_multimodal.py,sha256=kzOcZs08yCnB9AgaogZG28SguGqVUw9sumijhM5YRFU,12064
89
+ sparknlp/annotator/cv/florence2_transformer.py,sha256=jyXTY0om_8J_9GwlH5Dkussb1g6ra642ATzLaqv7TSI,8525
90
+ sparknlp/annotator/cv/gemma3_for_multimodal.py,sha256=475lYkf05Naw3tsdTScTs-tnHgFkbcCab7r6UwEXzvg,13017
91
+ sparknlp/annotator/cv/internvl_for_multimodal.py,sha256=1j_lZwZw4Mt9_EucxemuPo2buq_uj5aIkniE9mbegag,10851
92
+ sparknlp/annotator/cv/janus_for_multimodal.py,sha256=BGkXGvIf-upDai216m12-WHJCUmv-NRQ9ArEW2Wt0V0,14502
93
+ sparknlp/annotator/cv/llava_for_multimodal.py,sha256=okfBIuWgPK7VhRxznZDoPXNIIxc6g_NM0l5aH4yibVY,12068
92
94
  sparknlp/annotator/cv/mllama_for_multimodal.py,sha256=e4_bOGycy-gPYrl8en0mOP3eF8p17Xt85nwE5kmez5g,13071
93
- sparknlp/annotator/cv/paligemma_for_multimodal.py,sha256=nqwGWRG4kc7FJ26DMwwhkN7FnBWGBZsTjL9H-scs69Q,11204
94
- sparknlp/annotator/cv/phi3_vision_for_multimodal.py,sha256=MPGj07Gi-QCE5Ew5l3_SqUqBIR4Tvhhi1ZVbkuX-ihU,12127
95
- sparknlp/annotator/cv/qwen2vl_transformer.py,sha256=S2jFwMfh-2iaTl7t8SndH1U1dHSpnlW6E0IQBtw_Xak,12565
96
- sparknlp/annotator/cv/smolvlm_transformer.py,sha256=JJINJfo_tUvgZ89AG3YqJQ99yjqZpUzJ5vEfISXOeh0,16963
95
+ sparknlp/annotator/cv/paligemma_for_multimodal.py,sha256=C2fRsppihEJK4YK-hoGrirGUyof4fV_r28HWOYb4Yms,11214
96
+ sparknlp/annotator/cv/phi3_vision_for_multimodal.py,sha256=94nlNbcDgJW0zX2QIjJl1cMXi1i6wqQeNG61CdoPLKA,12131
97
+ sparknlp/annotator/cv/qwen2vl_transformer.py,sha256=q2BCs1qA8fyqbMsnW4-6wbGJim4QjVUuDHOXhtMXJcY,12570
98
+ sparknlp/annotator/cv/smolvlm_transformer.py,sha256=g7eypRcMrPW4pYyTHmxBjP8tA_B_4rRwPbUCe3XHz-0,16964
97
99
  sparknlp/annotator/cv/swin_for_image_classification.py,sha256=iZ1KY0GInbQmGzkmuNbds4PGPwCheLXc-Syv2HRmqug,10694
98
100
  sparknlp/annotator/cv/vision_encoder_decoder_for_image_captioning.py,sha256=rEWJte-qN6PI6ML2cGhsZ37wAzjHUtN_WD5pcKAez7M,10167
99
101
  sparknlp/annotator/cv/vit_for_image_classification.py,sha256=D2V3pxAd3rBi1817lxVOqaVvCw4trcVyorQgIPdLNAE,9148
@@ -105,7 +107,7 @@ sparknlp/annotator/embeddings/albert_embeddings.py,sha256=6Rd1LIn8oFIpq_ALcJh-RU
105
107
  sparknlp/annotator/embeddings/auto_gguf_embeddings.py,sha256=IlqkPGOH2lmZvxEyDSGX-G90DtTFOe2Rvujfbg5zvlU,20185
106
108
  sparknlp/annotator/embeddings/bert_embeddings.py,sha256=HVUjkg56kBcpGZCo-fmPG5uatMDF3swW_lnbpy1SgSI,8463
107
109
  sparknlp/annotator/embeddings/bert_sentence_embeddings.py,sha256=NQy9KuXT9aKsTpYCR5RAeoFWI2YqEGorbdYrf_0KKmw,9148
108
- sparknlp/annotator/embeddings/bge_embeddings.py,sha256=Y4b6QzRJGc_Z9_R6SYq-P5NxcvI9XzJlBzwCLLHJpRo,8103
110
+ sparknlp/annotator/embeddings/bge_embeddings.py,sha256=ZGbxssjJFaSfbcgqAPV5hsu81SnC0obgCVNOoJkArDA,8105
109
111
  sparknlp/annotator/embeddings/camembert_embeddings.py,sha256=dBTXas-2Tas_JUR9Xt_GtHLcyqi_cdvT5EHRnyVrSSQ,8817
110
112
  sparknlp/annotator/embeddings/chunk_embeddings.py,sha256=WUmkJimSuFkdcLJnvcxOV0QlCLgGlhub29ZTrZb70WE,6052
111
113
  sparknlp/annotator/embeddings/deberta_embeddings.py,sha256=_b5nzLb7heFQNN-uT2oBNO6-YmM8bHmAdnGXg47HOWw,8649
@@ -121,7 +123,7 @@ sparknlp/annotator/embeddings/nomic_embeddings.py,sha256=WTllH3htx9wDD2Le8pZgKVP
121
123
  sparknlp/annotator/embeddings/roberta_embeddings.py,sha256=q_WHby2lDcPc5bVHkGc6X_GwT3qyDUBLUVz5ZW4HCSY,9229
122
124
  sparknlp/annotator/embeddings/roberta_sentence_embeddings.py,sha256=KVrD4z_tIU-sphK6dmbbnHBBt8-Y89C_BFQAkN99kZo,8181
123
125
  sparknlp/annotator/embeddings/sentence_embeddings.py,sha256=azuA1FKMtTJ9suwJqTEHeWHumT6kYdfURTe_1fsqcB8,5402
124
- sparknlp/annotator/embeddings/snowflake_embeddings.py,sha256=2k7oxSSgu2Y8U2fkfZCCneG9PQjXzmJsl41BDsD0hfE,7260
126
+ sparknlp/annotator/embeddings/snowflake_embeddings.py,sha256=QzMSzmgSTedEAk0TlpHHBMjV0pPj8efLqVAVJqKgTgs,7253
125
127
  sparknlp/annotator/embeddings/uae_embeddings.py,sha256=sqTT67vcegVxcyoATISLPJSmOnA6J_otB6iREKOb6e4,8794
126
128
  sparknlp/annotator/embeddings/universal_sentence_encoder.py,sha256=_fTo-K78RjxiIKptpsI32mpW87RFCdXM16epHv4RVQY,8571
127
129
  sparknlp/annotator/embeddings/word2vec.py,sha256=UBhA4qUczQOx1t82Eu51lxx1-wJ_RLnCb__ncowSNhk,13229
@@ -149,7 +151,7 @@ sparknlp/annotator/ner/ner_dl.py,sha256=ght1W6-ArjLRiNHCv_bKpozkyNd8HVIb8SDGhcbp
149
151
  sparknlp/annotator/ner/ner_overwriter.py,sha256=en5OxXIP46yTXokIE96YDP9kcHA9oxiRPgwXMo0otew,6798
150
152
  sparknlp/annotator/ner/zero_shot_ner_model.py,sha256=DohhnkGSG-JxjW72t8AOx3GY7R_qT-LA3I0KF9TBz-Y,7501
151
153
  sparknlp/annotator/openai/__init__.py,sha256=u6SpV_xS8UpBE95WnTl0IefOI5TrTRl7ZHuYoeTetiA,759
152
- sparknlp/annotator/openai/openai_completion.py,sha256=OqDODelDAxlS66a4mAqJqXMFlEhaeiKZD4XBzR98k-g,16859
154
+ sparknlp/annotator/openai/openai_completion.py,sha256=vetyDRGs-ge0pxMojEaNFhVy50Sf7Sm0tsh0I71i2Ss,16867
153
155
  sparknlp/annotator/openai/openai_embeddings.py,sha256=i1ABDRmK6vMzzWP1rVxFiWnvXG4zfrTGGDjq4lvWQeE,108802
154
156
  sparknlp/annotator/param/__init__.py,sha256=MKBZs6NWRKxrpeof3Jr4PVmoa75wyRSdWzSt0A9lpfY,750
155
157
  sparknlp/annotator/param/classifier_encoder.py,sha256=PDyOdUX2GOFVr6MLtB7RUPBdtDrzDNJNRe_r9bY5JpE,3005
@@ -171,20 +173,20 @@ sparknlp/annotator/seq2seq/cpm_transformer.py,sha256=0CnBFMlxMu0pD2QZMHyoGtIYgXq
171
173
  sparknlp/annotator/seq2seq/gpt2_transformer.py,sha256=Oz95R_NRR4tWHu_bW6Ak2832ZILXycp3ify7LfRSi8o,15310
172
174
  sparknlp/annotator/seq2seq/llama2_transformer.py,sha256=3LzTR0VerFdFmOizsrs2Q7HTnjELJ5WtfUgx5XnOqGM,13898
173
175
  sparknlp/annotator/seq2seq/llama3_transformer.py,sha256=wmhgWQkO__H1vIGnAMjUU14Gtit4qOcE1m9YpM6YkB4,14950
174
- sparknlp/annotator/seq2seq/m2m100_transformer.py,sha256=uIL9RZuuryTIdAy9TbJf9wbz6RekhW8S079bJhaB6i4,16116
176
+ sparknlp/annotator/seq2seq/m2m100_transformer.py,sha256=brlOWjvdbDPfycTUMWnXnQjA9qY9I8ljJJpEd1Gwq5Q,16128
175
177
  sparknlp/annotator/seq2seq/marian_transformer.py,sha256=mQ4Ylh7ZzXAOue8f-x0gqzfS3vAz3XUdD7eQ2XhcEs4,13781
176
- sparknlp/annotator/seq2seq/mistral_transformer.py,sha256=PJegrSQts_58rkt96xaHlqU1fKIaz8hxt7DTPkGS10A,14254
177
- sparknlp/annotator/seq2seq/nllb_transformer.py,sha256=hOmdJOgl_-_PxoADrV-tVYmlfFrqNwvn6Vn2RC4siZM,19534
178
+ sparknlp/annotator/seq2seq/mistral_transformer.py,sha256=6lVrhWvW8b_3DaQtpegigFL25tELThRHZQRxxNhZuAU,14250
179
+ sparknlp/annotator/seq2seq/nllb_transformer.py,sha256=1ys01yaC0nVzXETy8oD2wZHyombfLzK1cetKrVGTVyY,19546
178
180
  sparknlp/annotator/seq2seq/olmo_transformer.py,sha256=B_zhYkAfYycw5uBq1tVNPmaKuYtpJOxRC6PArit7XiE,13634
179
181
  sparknlp/annotator/seq2seq/phi2_transformer.py,sha256=WwKCUOH8qGFv62YF63HjuT7bMVldh06gHvaZH3tbSDk,13787
180
182
  sparknlp/annotator/seq2seq/phi3_transformer.py,sha256=arIcw5NDMv3ubBwWz3KYRdLMsspTiEI8vk4s00lyq1c,14293
181
- sparknlp/annotator/seq2seq/qwen_transformer.py,sha256=cOpOlz5r_apmVHZgp7uFjybSzVj2yxv8QYlYcGwFyKg,14645
183
+ sparknlp/annotator/seq2seq/qwen_transformer.py,sha256=IYxveoHGWWoiwzJ_VMLMgUBe6jr1JSHKSY0PApnTCOI,14640
182
184
  sparknlp/annotator/seq2seq/starcoder_transformer.py,sha256=BTXbSMRpXnDvrfh-6iFS5k6g6EcPV9zBl4U-SSC19wA,14293
183
185
  sparknlp/annotator/seq2seq/t5_transformer.py,sha256=wDVxNLluIU1HGZFqaKKc4YTt4l-elPlAtQ7EEa0f5tg,17308
184
186
  sparknlp/annotator/similarity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
187
  sparknlp/annotator/similarity/document_similarity_ranker.py,sha256=BHV2XWA18YvBn_OKOVvR0TmPPnHSgiAgpZpaPz7ar_s,15826
186
188
  sparknlp/annotator/spell_check/__init__.py,sha256=sdnPR3f3Q9mHiv-n4g_O7KpRWPRPweyATSF6Tth_Niw,830
187
- sparknlp/annotator/spell_check/context_spell_checker.py,sha256=OtjN51K3TyQpFmZrhPrvxZwCJsENFwTkeNKQYWrP-Gw,31992
189
+ sparknlp/annotator/spell_check/context_spell_checker.py,sha256=-YFymfJoMr_4yTSoiWMcrPq4JbyygaRONX-tMQXHw9k,31989
188
190
  sparknlp/annotator/spell_check/norvig_sweeting.py,sha256=6ET9KnAqXIQDJ5U9px1ixUbC6R63ln_ljruvh_oLiwA,13197
189
191
  sparknlp/annotator/spell_check/symmetric_delete.py,sha256=ms8BPrFOITqppShZmEEiqVhjE-pwVb7jI5NSCQ4XM0A,11058
190
192
  sparknlp/annotator/token/__init__.py,sha256=cu5njC9peW4_toFOvnHgYzHXsMqxlpPf1p7C4VxoDMk,861
@@ -206,7 +208,7 @@ sparknlp/base/has_recursive_transform.py,sha256=UkGNgo4LMsjQC-Coeefg4bJcg7FoPcPi
206
208
  sparknlp/base/image_assembler.py,sha256=-ylzVaDdjJBDQNkTixsCn7WvFB8cqC3_lPdvdiJu0aM,6168
207
209
  sparknlp/base/light_pipeline.py,sha256=2lOstyyK0o6L3BHPIZWQBpIKtJ7LcSz3Pvgo6eZDs5U,17023
208
210
  sparknlp/base/multi_document_assembler.py,sha256=4htET1fRAeOB6zhsNXsBq5rKZvn-LGD4vrFRjPZeqow,7070
209
- sparknlp/base/prompt_assembler.py,sha256=ysU4Vbmnuv2UBHK0JBkYrxiZiJ7_GTcVMip1-QRmheI,11570
211
+ sparknlp/base/prompt_assembler.py,sha256=_C_9MdHqsxUjSOa3TqCV-6sSfSiRyhfHBQG5m7RlqxY,11578
210
212
  sparknlp/base/recursive_pipeline.py,sha256=V9rTnu8KMwgjoceykN9pF1mKGtOkkuiC_n9v8dE3LDk,4279
211
213
  sparknlp/base/table_assembler.py,sha256=Kxu3R2fY6JgCxEc07ibsMsjip6dgcPDHLiWAZ8gC_d8,5102
212
214
  sparknlp/base/token_assembler.py,sha256=qiHry07L7mVCqeHSH6hHxLygv1AsfZIE4jy1L75L3Do,5075
@@ -217,12 +219,12 @@ sparknlp/common/annotator_properties.py,sha256=7B1os7pBUfHo6b7IPQAXQ-nir0u3tQLzD
217
219
  sparknlp/common/annotator_type.py,sha256=ash2Ip1IOOiJamPVyy_XQj8Ja_DRHm0b9Vj4Ni75oKM,1225
218
220
  sparknlp/common/coverage_result.py,sha256=No4PSh1HSs3PyRI1zC47x65tWgfirqPI290icHQoXEI,823
219
221
  sparknlp/common/match_strategy.py,sha256=kt1MUPqU1wCwk5qCdYk6jubHbU-5yfAYxb9jjAOrdnY,1678
220
- sparknlp/common/properties.py,sha256=vuvF5eUq4H2LxgIhIPsjeS8AF4JJcRDEicmLqyeRgmk,51457
222
+ sparknlp/common/properties.py,sha256=v8PUB0YqeiZRzP8mX3kXSFoQVMZOg_ips0Y5M54hUIc,51493
221
223
  sparknlp/common/read_as.py,sha256=imxPGwV7jr4Li_acbo0OAHHRGCBbYv-akzEGaBWEfcY,1226
222
224
  sparknlp/common/recursive_annotator_approach.py,sha256=vqugBw22cE3Ff7PIpRlnYFuOlchgL0nM26D8j-NdpqU,1449
223
225
  sparknlp/common/storage.py,sha256=D91H3p8EIjNspjqAYu6ephRpCUtdcAir4_PrAbkIQWE,4842
224
226
  sparknlp/common/utils.py,sha256=Yne6yYcwKxhOZC-U4qfYoDhWUP_6BIaAjI5X_P_df1E,1306
225
- sparknlp/internal/__init__.py,sha256=YtsUXuuHzv4lATbepu7BhWJEc7Vo65OtEgphxEHOa5Q,39168
227
+ sparknlp/internal/__init__.py,sha256=Bn-p54L1DMmrSc1nfWpmCpv_WsRZJGXLc1UmQBjMXaw,39839
226
228
  sparknlp/internal/annotator_java_ml.py,sha256=UGPoThG0rGXUOXGSQnDzEDW81Mu1s5RPF29v7DFyE3c,1187
227
229
  sparknlp/internal/annotator_transformer.py,sha256=fXmc2IWXGybqZpbEU9obmbdBYPc798y42zvSB4tqV9U,1448
228
230
  sparknlp/internal/extended_java_wrapper.py,sha256=hwP0133-hDiDf5sBF-P3MtUsuuDj1PpQbtGZQIRwzfk,2240
@@ -230,20 +232,24 @@ sparknlp/internal/params_getters_setters.py,sha256=LtaKAzD8fEupEPy9vYOI2St7A3PcZ
230
232
  sparknlp/internal/recursive.py,sha256=YfsjOmUUccFOHxheIXf-rps8yc4PPqFCje94_7dS4iw,2756
231
233
  sparknlp/logging/__init__.py,sha256=DoROFF5KLZe4t4Q-OHxqk1nhqbw9NQ-wb64y8icNwgw,642
232
234
  sparknlp/logging/comet.py,sha256=_ZBi9-hlilCAnd4lvdYMWiq4Vqsppv8kow3k0cf-NG4,15958
235
+ sparknlp/partition/__init__.py,sha256=L0w-yv_HnnvoKlSX5MzI2GKHW3RLLfGyq8bgWYVeKjU,749
236
+ sparknlp/partition/partition.py,sha256=GXEAUvOea04Vc_JK0z112cAKFrJ4AEpjLJ8xlzZt6Kw,8551
237
+ sparknlp/partition/partition_properties.py,sha256=68gG_OECjij5xSuiX7O_jguFGX797U_OtOOSmT4Sdj4,7849
238
+ sparknlp/partition/partition_transformer.py,sha256=dqvTLeBI6RNH_hGaib-AJQsWBKpj96iuvBAm_TJAuho,6774
233
239
  sparknlp/pretrained/__init__.py,sha256=GV-x9UBK8F2_IR6zYatrzFcVJtkSUIMbxqWsxRUePmQ,793
234
240
  sparknlp/pretrained/pretrained_pipeline.py,sha256=lquxiaABuA68Rmu7csamJPqBoRJqMUO0oNHsmEZDAIs,5740
235
241
  sparknlp/pretrained/resource_downloader.py,sha256=8_-rpvO2LsX_Lq4wMPif2ca3RlJZWEabt8pDm2xymiI,7806
236
242
  sparknlp/pretrained/utils.py,sha256=T1MrvW_DaWk_jcOjVLOea0NMFE9w8fe0ZT_5urZ_nEY,1099
237
243
  sparknlp/reader/__init__.py,sha256=-Toj3AIBki-zXPpV8ezFTI2LX1yP_rK2bhpoa8nBkTw,685
238
244
  sparknlp/reader/enums.py,sha256=MNGug9oJ1BBLM1Pbske13kAabalDzHa2kucF5xzFpHs,770
239
- sparknlp/reader/pdf_to_text.py,sha256=o2-ZqioR3-apGDo5WCb0_I0sEQr6O-CGMfMb4W4YSss,3892
240
- sparknlp/reader/sparknlp_reader.py,sha256=BEKfT9JaOWlA2ddsMNiC-pVRrM9Ad_4J4-Ur3iCNKH0,38218
245
+ sparknlp/reader/pdf_to_text.py,sha256=pI1BBQ44tXn8GIMv--_kZJ3bPP8R9Q1lYejkfhi5pMQ,5739
246
+ sparknlp/reader/sparknlp_reader.py,sha256=ZGTpWtboPptQop-ZCF3XB3Gp21BKq6CfVBEnbb0Sb5A,15072
241
247
  sparknlp/training/__init__.py,sha256=qREi9u-5Vc2VjpL6-XZsyvu5jSEIdIhowW7_kKaqMqo,852
242
248
  sparknlp/training/conll.py,sha256=wKBiSTrjc6mjsl7Nyt6B8f4yXsDJkZb-sn8iOjix9cE,6961
243
249
  sparknlp/training/conllu.py,sha256=8r3i-tmyrLsyk1DtZ9uo2mMDCWb1yw2Y5W6UsV13MkY,4953
244
250
  sparknlp/training/pos.py,sha256=YchvPWksMAYvM6XPLNzbS-Kr96CRpLMSr21qe76m1PY,4091
245
251
  sparknlp/training/pub_tator.py,sha256=2DWuNJqAl81_Izaa_qoQMHkpeqDP8sA7mhehc6vI7Gw,3331
246
- sparknlp/training/spacy_to_annotation.py,sha256=uBSu3jb1El3WDWNXEMP8EkX44FZOwb-SJbhZkuBQPHs,6798
252
+ sparknlp/training/spacy_to_annotation.py,sha256=b8WCqwr0kBRWa695ajDAxNVFg_z0yD1U1_dS3ryMY0I,6826
247
253
  sparknlp/training/tfgraphs.py,sha256=Hl3vp9VhLX_IinqOvtIH0r9Bf2BgcGrFKG5wBu3qTmc,244
248
254
  sparknlp/training/_tf_graph_builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
255
  sparknlp/training/_tf_graph_builders/graph_builders.py,sha256=0WqVTRnZValftGpGm6tYJCOQmJUL_B2pjZSQu8dLqs0,10819
@@ -268,7 +274,7 @@ sparknlp/training/_tf_graph_builders_1x/ner_dl/dataset_encoder.py,sha256=R4yHFN3
268
274
  sparknlp/training/_tf_graph_builders_1x/ner_dl/ner_model.py,sha256=EoCSdcIjqQ3wv13MAuuWrKV8wyVBP0SbOEW41omHlR0,23189
269
275
  sparknlp/training/_tf_graph_builders_1x/ner_dl/ner_model_saver.py,sha256=k5CQ7gKV6HZbZMB8cKLUJuZxoZWlP_DFWdZ--aIDwsc,2356
270
276
  sparknlp/training/_tf_graph_builders_1x/ner_dl/sentence_grouper.py,sha256=pAxjWhjazSX8Vg0MFqJiuRVw1IbnQNSs-8Xp26L4nko,870
271
- spark_nlp-6.0.1rc1.dist-info/METADATA,sha256=z-li7N02SZLSg5k3RXH9w_GbQKh1ro03sRnl030YIQ8,19580
272
- spark_nlp-6.0.1rc1.dist-info/WHEEL,sha256=AHX6tWk3qWuce7vKLrj7lnulVHEdWoltgauo8bgCXgU,109
273
- spark_nlp-6.0.1rc1.dist-info/top_level.txt,sha256=uuytur4pyMRw2H_txNY2ZkaucZHUs22QF8-R03ch_-E,13
274
- spark_nlp-6.0.1rc1.dist-info/RECORD,,
277
+ spark_nlp-6.0.2.dist-info/METADATA,sha256=U7T7SvtFmoJjcaW5HjycYAS6fLQn924ok2Q4gqw4xPw,19722
278
+ spark_nlp-6.0.2.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
279
+ spark_nlp-6.0.2.dist-info/top_level.txt,sha256=uuytur4pyMRw2H_txNY2ZkaucZHUs22QF8-R03ch_-E,13
280
+ spark_nlp-6.0.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any
sparknlp/__init__.py CHANGED
@@ -66,6 +66,8 @@ sys.modules['com.johnsnowlabs.ml.ai'] = annotator
66
66
  annotators = annotator
67
67
  embeddings = annotator
68
68
 
69
+ __version__ = "6.0.2"
70
+
69
71
 
70
72
  def start(gpu=False,
71
73
  apple_silicon=False,
@@ -132,7 +134,7 @@ def start(gpu=False,
132
134
  The initiated Spark session.
133
135
 
134
136
  """
135
- current_version = "6.0.1-rc1"
137
+ current_version = __version__
136
138
 
137
139
  if params is None:
138
140
  params = {}
@@ -316,4 +318,4 @@ def version():
316
318
  str
317
319
  The current Spark NLP version.
318
320
  """
319
- return '6.0.1-rc1'
321
+ return __version__
@@ -25,3 +25,5 @@ from sparknlp.annotator.cv.phi3_vision_for_multimodal import *
25
25
  from sparknlp.annotator.cv.smolvlm_transformer import *
26
26
  from sparknlp.annotator.cv.paligemma_for_multimodal import *
27
27
  from sparknlp.annotator.cv.gemma3_for_multimodal import *
28
+ from sparknlp.annotator.cv.internvl_for_multimodal import *
29
+ from sparknlp.annotator.cv.florence2_transformer import *
@@ -0,0 +1,180 @@
1
+ # Copyright 2017-2024 John Snow Labs
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from sparknlp.common import *
16
+
17
+ class Florence2Transformer(AnnotatorModel,
18
+ HasBatchedAnnotateImage,
19
+ HasImageFeatureProperties,
20
+ HasEngine):
21
+ """Florence2Transformer can load Florence-2 models for a variety of vision and vision-language tasks using prompt-based inference.
22
+
23
+ The model supports image captioning, object detection, segmentation, OCR, and more, using prompt tokens as described in the Florence-2 documentation.
24
+
25
+ Pretrained models can be loaded with :meth:`.pretrained` of the companion object:
26
+
27
+ >>> florence2 = Florence2Transformer.pretrained() \
28
+ ... .setInputCols(["image_assembler"]) \
29
+ ... .setOutputCol("answer")
30
+
31
+ The default model is ``"florence2_base_ft_int4"``, if no name is provided.
32
+
33
+ For available pretrained models please see the `Models Hub <https://sparknlp.org/models?task=Vision+Tasks>`__.
34
+
35
+ ====================== ======================
36
+ Input Annotation types Output Annotation type
37
+ ====================== ======================
38
+ ``IMAGE`` ``DOCUMENT``
39
+ ====================== ======================
40
+
41
+ Parameters
42
+ ----------
43
+ batchSize
44
+ Batch size. Large values allows faster processing but requires more memory, by default 2
45
+ maxOutputLength
46
+ Maximum length of output text, by default 200
47
+ minOutputLength
48
+ Minimum length of the sequence to be generated, by default 10
49
+ doSample
50
+ Whether or not to use sampling; use greedy decoding otherwise, by default False
51
+ temperature
52
+ The value used to module the next token probabilities, by default 1.0
53
+ topK
54
+ The number of highest probability vocabulary tokens to keep for top-k-filtering, by default 50
55
+ topP
56
+ If set to float < 1, only the most probable tokens with probabilities that add up to ``top_p`` or higher are kept for generation, by default 1.0
57
+ repetitionPenalty
58
+ The parameter for repetition penalty. 1.0 means no penalty, by default 1.0
59
+ noRepeatNgramSize
60
+ If set to int > 0, all ngrams of that size can only occur once, by default 3
61
+ ignoreTokenIds
62
+ A list of token ids which are ignored in the decoder's output, by default []
63
+ beamSize
64
+ The Number of beams for beam search, by default 1
65
+
66
+ Examples
67
+ --------
68
+ >>> import sparknlp
69
+ >>> from sparknlp.base import *
70
+ >>> from sparknlp.annotator import *
71
+ >>> from pyspark.ml import Pipeline
72
+ >>> image_df = spark.read.format("image").load(path=images_path)
73
+ >>> test_df = image_df.withColumn("text", lit("<OD>"))
74
+ >>> imageAssembler = ImageAssembler() \
75
+ ... .setInputCol("image") \
76
+ ... .setOutputCol("image_assembler")
77
+ >>> florence2 = Florence2Transformer.pretrained() \
78
+ ... .setInputCols(["image_assembler"]) \
79
+ ... .setOutputCol("answer")
80
+ >>> pipeline = Pipeline().setStages([
81
+ ... imageAssembler,
82
+ ... florence2
83
+ ... ])
84
+ >>> result = pipeline.fit(test_df).transform(test_df)
85
+ >>> result.select("image_assembler.origin", "answer.result").show(False)
86
+ """
87
+
88
+ name = "Florence2Transformer"
89
+
90
+ inputAnnotatorTypes = [AnnotatorType.IMAGE]
91
+ outputAnnotatorType = AnnotatorType.DOCUMENT
92
+
93
+ minOutputLength = Param(Params._dummy(), "minOutputLength", "Minimum length of the sequence to be generated", typeConverter=TypeConverters.toInt)
94
+ maxOutputLength = Param(Params._dummy(), "maxOutputLength", "Maximum length of output text", typeConverter=TypeConverters.toInt)
95
+ doSample = Param(Params._dummy(), "doSample", "Whether or not to use sampling; use greedy decoding otherwise", typeConverter=TypeConverters.toBoolean)
96
+ temperature = Param(Params._dummy(), "temperature", "The value used to module the next token probabilities", typeConverter=TypeConverters.toFloat)
97
+ topK = Param(Params._dummy(), "topK", "The number of highest probability vocabulary tokens to keep for top-k-filtering", typeConverter=TypeConverters.toInt)
98
+ topP = Param(Params._dummy(), "topP", "If set to float < 1, only the most probable tokens with probabilities that add up to top_p or higher are kept for generation", typeConverter=TypeConverters.toFloat)
99
+ repetitionPenalty = Param(Params._dummy(), "repetitionPenalty", "The parameter for repetition penalty. 1.0 means no penalty.", typeConverter=TypeConverters.toFloat)
100
+ noRepeatNgramSize = Param(Params._dummy(), "noRepeatNgramSize", "If set to int > 0, all ngrams of that size can only occur once", typeConverter=TypeConverters.toInt)
101
+ ignoreTokenIds = Param(Params._dummy(), "ignoreTokenIds", "A list of token ids which are ignored in the decoder's output", typeConverter=TypeConverters.toListInt)
102
+ beamSize = Param(Params._dummy(), "beamSize", "The Number of beams for beam search.", typeConverter=TypeConverters.toInt)
103
+ batchSize = Param(Params._dummy(), "batchSize", "Batch size. Large values allows faster processing but requires more memory", typeConverter=TypeConverters.toInt)
104
+
105
+ @keyword_only
106
+ def __init__(self, classname="com.johnsnowlabs.nlp.annotators.cv.Florence2Transformer", java_model=None):
107
+ super(Florence2Transformer, self).__init__(
108
+ classname=classname,
109
+ java_model=java_model
110
+ )
111
+ self._setDefault(
112
+ batchSize=2,
113
+ minOutputLength=10,
114
+ maxOutputLength=200,
115
+ doSample=False,
116
+ temperature=1.0,
117
+ topK=50,
118
+ topP=1.0,
119
+ repetitionPenalty=1.0,
120
+ noRepeatNgramSize=3,
121
+ ignoreTokenIds=[],
122
+ beamSize=1,
123
+ )
124
+
125
+ def setMinOutputLength(self, value):
126
+ """Sets minimum length of the sequence to be generated."""
127
+ return self._set(minOutputLength=value)
128
+
129
+ def setMaxOutputLength(self, value):
130
+ """Sets maximum length of output text."""
131
+ return self._set(maxOutputLength=value)
132
+
133
+ def setDoSample(self, value):
134
+ """Sets whether or not to use sampling; use greedy decoding otherwise."""
135
+ return self._set(doSample=value)
136
+
137
+ def setTemperature(self, value):
138
+ """Sets the value used to module the next token probabilities."""
139
+ return self._set(temperature=value)
140
+
141
+ def setTopK(self, value):
142
+ """Sets the number of highest probability vocabulary tokens to keep for top-k-filtering."""
143
+ return self._set(topK=value)
144
+
145
+ def setTopP(self, value):
146
+ """Sets the top cumulative probability for vocabulary tokens."""
147
+ return self._set(topP=value)
148
+
149
+ def setRepetitionPenalty(self, value):
150
+ """Sets the parameter for repetition penalty. 1.0 means no penalty."""
151
+ return self._set(repetitionPenalty=value)
152
+
153
+ def setNoRepeatNgramSize(self, value):
154
+ """Sets size of n-grams that can only occur once."""
155
+ return self._set(noRepeatNgramSize=value)
156
+
157
+ def setIgnoreTokenIds(self, value):
158
+ """A list of token ids which are ignored in the decoder's output."""
159
+ return self._set(ignoreTokenIds=value)
160
+
161
+ def setBeamSize(self, value):
162
+ """Sets the number of beams for beam search."""
163
+ return self._set(beamSize=value)
164
+
165
+ def setBatchSize(self, value):
166
+ """Sets the batch size."""
167
+ return self._set(batchSize=value)
168
+
169
+ @staticmethod
170
+ def loadSavedModel(folder, spark_session, use_openvino=False):
171
+ """Loads a locally saved model."""
172
+ from sparknlp.internal import _Florence2TransformerLoader
173
+ jModel = _Florence2TransformerLoader(folder, spark_session._jsparkSession, use_openvino)._java_obj
174
+ return Florence2Transformer(java_model=jModel)
175
+
176
+ @staticmethod
177
+ def pretrained(name="florence2_base_ft_int4", lang="en", remote_loc=None):
178
+ """Downloads and loads a pretrained model."""
179
+ from sparknlp.pretrained import ResourceDownloader
180
+ return ResourceDownloader.downloadModel(Florence2Transformer, name, lang, remote_loc)
@@ -83,23 +83,18 @@ class Gemma3ForMultiModal(AnnotatorModel,
83
83
  >>> from sparknlp.annotator import *
84
84
  >>> from pyspark.ml import Pipeline
85
85
  >>> from pyspark.sql.functions import lit
86
- >>>
87
86
  >>> imageDF = spark.read.format("image").load(images_path)
88
- >>> testDF = imageDF.withColumn("text", lit("<bos><start_of_turn>user\nYou are a helpful assistant.\n\n<start_of_image>Describe this image in detail.<end_of_turn>\n<start_of_turn>model\n"))
89
- >>>
90
- >>> imageAssembler = ImageAssembler() \
91
- ... .setInputCol("image") \
87
+ >>> testDF = imageDF.withColumn("text", lit("<bos><start_of_turn>user\\nYou are a helpful assistant.\\n\\n<start_of_image>Describe this image in detail.<end_of_turn>\\n<start_of_turn>model\\n"))
88
+ >>> imageAssembler = ImageAssembler() \\
89
+ ... .setInputCol("image") \\
92
90
  ... .setOutputCol("image_assembler")
93
- >>>
94
- >>> visualQA = Gemma3ForMultiModal.pretrained() \
95
- ... .setInputCols("image_assembler") \
91
+ >>> visualQA = Gemma3ForMultiModal.pretrained() \\
92
+ ... .setInputCols("image_assembler") \\
96
93
  ... .setOutputCol("answer")
97
- >>>
98
94
  >>> pipeline = Pipeline().setStages([
99
95
  ... imageAssembler,
100
96
  ... visualQA
101
97
  ... ])
102
- >>>
103
98
  >>> result = pipeline.fit(testDF).transform(testDF)
104
99
  >>> result.select("image_assembler.origin", "answer.result").show(truncate=False)
105
100
  """