spark-nlp 6.0.3__tar.gz → 6.0.4__tar.gz

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 (287) hide show
  1. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/PKG-INFO +5 -5
  2. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/README.md +4 -4
  3. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/setup.py +1 -1
  4. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/spark_nlp.egg-info/PKG-INFO +5 -5
  5. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/spark_nlp.egg-info/SOURCES.txt +2 -0
  6. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/__init__.py +1 -1
  7. spark_nlp-6.0.4/sparknlp/annotator/dataframe_optimizer.py +216 -0
  8. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/__init__.py +1 -0
  9. spark_nlp-6.0.4/sparknlp/annotator/embeddings/minilm_embeddings.py +189 -0
  10. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/internal/__init__.py +10 -0
  11. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/reader/pdf_to_text.py +34 -1
  12. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/com/__init__.py +0 -0
  13. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/com/johnsnowlabs/__init__.py +0 -0
  14. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/com/johnsnowlabs/ml/__init__.py +0 -0
  15. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/com/johnsnowlabs/ml/ai/__init__.py +0 -0
  16. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/com/johnsnowlabs/nlp/__init__.py +0 -0
  17. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/setup.cfg +0 -0
  18. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/spark_nlp.egg-info/dependency_links.txt +0 -0
  19. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/spark_nlp.egg-info/top_level.txt +0 -0
  20. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotation.py +0 -0
  21. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotation_audio.py +0 -0
  22. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotation_image.py +0 -0
  23. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/__init__.py +0 -0
  24. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/audio/__init__.py +0 -0
  25. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/audio/hubert_for_ctc.py +0 -0
  26. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/audio/wav2vec2_for_ctc.py +0 -0
  27. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/audio/whisper_for_ctc.py +0 -0
  28. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/chunk2_doc.py +0 -0
  29. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/chunker.py +0 -0
  30. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/__init__.py +0 -0
  31. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/albert_for_multiple_choice.py +0 -0
  32. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/albert_for_question_answering.py +0 -0
  33. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/albert_for_sequence_classification.py +0 -0
  34. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/albert_for_token_classification.py +0 -0
  35. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/albert_for_zero_shot_classification.py +0 -0
  36. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/bart_for_zero_shot_classification.py +0 -0
  37. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/bert_for_multiple_choice.py +0 -0
  38. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/bert_for_question_answering.py +0 -0
  39. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/bert_for_sequence_classification.py +0 -0
  40. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/bert_for_token_classification.py +0 -0
  41. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/bert_for_zero_shot_classification.py +0 -0
  42. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/camembert_for_question_answering.py +0 -0
  43. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/camembert_for_sequence_classification.py +0 -0
  44. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/camembert_for_token_classification.py +0 -0
  45. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/camembert_for_zero_shot_classification.py +0 -0
  46. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/classifier_dl.py +0 -0
  47. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/deberta_for_question_answering.py +0 -0
  48. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/deberta_for_sequence_classification.py +0 -0
  49. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/deberta_for_token_classification.py +0 -0
  50. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/deberta_for_zero_shot_classification.py +0 -0
  51. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/distil_bert_for_question_answering.py +0 -0
  52. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/distil_bert_for_sequence_classification.py +0 -0
  53. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/distil_bert_for_token_classification.py +0 -0
  54. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/distil_bert_for_zero_shot_classification.py +0 -0
  55. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/distilbert_for_multiple_choice.py +0 -0
  56. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/longformer_for_question_answering.py +0 -0
  57. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/longformer_for_sequence_classification.py +0 -0
  58. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/longformer_for_token_classification.py +0 -0
  59. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/mpnet_for_question_answering.py +0 -0
  60. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/mpnet_for_sequence_classification.py +0 -0
  61. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/mpnet_for_token_classification.py +0 -0
  62. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/multi_classifier_dl.py +0 -0
  63. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/roberta_for_multiple_choice.py +0 -0
  64. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/roberta_for_question_answering.py +0 -0
  65. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/roberta_for_sequence_classification.py +0 -0
  66. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/roberta_for_token_classification.py +0 -0
  67. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/roberta_for_zero_shot_classification.py +0 -0
  68. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/sentiment_dl.py +0 -0
  69. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/tapas_for_question_answering.py +0 -0
  70. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlm_roberta_for_multiple_choice.py +0 -0
  71. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlm_roberta_for_question_answering.py +0 -0
  72. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlm_roberta_for_sequence_classification.py +0 -0
  73. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlm_roberta_for_token_classification.py +0 -0
  74. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlm_roberta_for_zero_shot_classification.py +0 -0
  75. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlnet_for_sequence_classification.py +0 -0
  76. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/classifier_dl/xlnet_for_token_classification.py +0 -0
  77. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cleaners/__init__.py +0 -0
  78. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cleaners/cleaner.py +0 -0
  79. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cleaners/extractor.py +0 -0
  80. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/coref/__init__.py +0 -0
  81. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/coref/spanbert_coref.py +0 -0
  82. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/__init__.py +0 -0
  83. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/blip_for_question_answering.py +0 -0
  84. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/clip_for_zero_shot_classification.py +0 -0
  85. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/convnext_for_image_classification.py +0 -0
  86. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/florence2_transformer.py +0 -0
  87. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/gemma3_for_multimodal.py +0 -0
  88. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/internvl_for_multimodal.py +0 -0
  89. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/janus_for_multimodal.py +0 -0
  90. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/llava_for_multimodal.py +0 -0
  91. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/mllama_for_multimodal.py +0 -0
  92. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/paligemma_for_multimodal.py +0 -0
  93. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/phi3_vision_for_multimodal.py +0 -0
  94. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/qwen2vl_transformer.py +0 -0
  95. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/smolvlm_transformer.py +0 -0
  96. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/swin_for_image_classification.py +0 -0
  97. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/vision_encoder_decoder_for_image_captioning.py +0 -0
  98. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/cv/vit_for_image_classification.py +0 -0
  99. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/date2_chunk.py +0 -0
  100. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/dependency/__init__.py +0 -0
  101. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/dependency/dependency_parser.py +0 -0
  102. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/dependency/typed_dependency_parser.py +0 -0
  103. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/document_character_text_splitter.py +0 -0
  104. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/document_normalizer.py +0 -0
  105. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/document_token_splitter.py +0 -0
  106. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/document_token_splitter_test.py +0 -0
  107. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/albert_embeddings.py +0 -0
  108. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/auto_gguf_embeddings.py +0 -0
  109. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/bert_embeddings.py +0 -0
  110. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/bert_sentence_embeddings.py +0 -0
  111. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/bge_embeddings.py +0 -0
  112. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/camembert_embeddings.py +0 -0
  113. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/chunk_embeddings.py +0 -0
  114. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/deberta_embeddings.py +0 -0
  115. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/distil_bert_embeddings.py +0 -0
  116. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/doc2vec.py +0 -0
  117. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/e5_embeddings.py +0 -0
  118. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/e5v_embeddings.py +0 -0
  119. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/elmo_embeddings.py +0 -0
  120. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/instructor_embeddings.py +0 -0
  121. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/longformer_embeddings.py +0 -0
  122. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/mpnet_embeddings.py +0 -0
  123. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/mxbai_embeddings.py +0 -0
  124. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/nomic_embeddings.py +0 -0
  125. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/roberta_embeddings.py +0 -0
  126. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/roberta_sentence_embeddings.py +0 -0
  127. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/sentence_embeddings.py +0 -0
  128. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/snowflake_embeddings.py +0 -0
  129. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/uae_embeddings.py +0 -0
  130. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/universal_sentence_encoder.py +0 -0
  131. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/word2vec.py +0 -0
  132. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/word_embeddings.py +0 -0
  133. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/xlm_roberta_embeddings.py +0 -0
  134. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/xlm_roberta_sentence_embeddings.py +0 -0
  135. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/embeddings/xlnet_embeddings.py +0 -0
  136. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/er/__init__.py +0 -0
  137. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/er/entity_ruler.py +0 -0
  138. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/graph_extraction.py +0 -0
  139. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/keyword_extraction/__init__.py +0 -0
  140. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/keyword_extraction/yake_keyword_extraction.py +0 -0
  141. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ld_dl/__init__.py +0 -0
  142. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ld_dl/language_detector_dl.py +0 -0
  143. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/lemmatizer.py +0 -0
  144. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/matcher/__init__.py +0 -0
  145. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/matcher/big_text_matcher.py +0 -0
  146. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/matcher/date_matcher.py +0 -0
  147. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/matcher/multi_date_matcher.py +0 -0
  148. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/matcher/regex_matcher.py +0 -0
  149. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/matcher/text_matcher.py +0 -0
  150. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/n_gram_generator.py +0 -0
  151. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/__init__.py +0 -0
  152. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/ner_approach.py +0 -0
  153. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/ner_converter.py +0 -0
  154. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/ner_crf.py +0 -0
  155. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/ner_dl.py +0 -0
  156. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/ner_overwriter.py +0 -0
  157. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ner/zero_shot_ner_model.py +0 -0
  158. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/normalizer.py +0 -0
  159. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/openai/__init__.py +0 -0
  160. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/openai/openai_completion.py +0 -0
  161. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/openai/openai_embeddings.py +0 -0
  162. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/param/__init__.py +0 -0
  163. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/param/classifier_encoder.py +0 -0
  164. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/param/evaluation_dl_params.py +0 -0
  165. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/pos/__init__.py +0 -0
  166. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/pos/perceptron.py +0 -0
  167. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/sentence/__init__.py +0 -0
  168. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/sentence/sentence_detector.py +0 -0
  169. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/sentence/sentence_detector_dl.py +0 -0
  170. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/sentiment/__init__.py +0 -0
  171. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/sentiment/sentiment_detector.py +0 -0
  172. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/sentiment/vivekn_sentiment.py +0 -0
  173. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/__init__.py +0 -0
  174. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/auto_gguf_model.py +0 -0
  175. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/auto_gguf_vision_model.py +0 -0
  176. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/bart_transformer.py +0 -0
  177. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/cohere_transformer.py +0 -0
  178. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/cpm_transformer.py +0 -0
  179. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/gpt2_transformer.py +0 -0
  180. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/llama2_transformer.py +0 -0
  181. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/llama3_transformer.py +0 -0
  182. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/m2m100_transformer.py +0 -0
  183. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/marian_transformer.py +0 -0
  184. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/mistral_transformer.py +0 -0
  185. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/nllb_transformer.py +0 -0
  186. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/olmo_transformer.py +0 -0
  187. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/phi2_transformer.py +0 -0
  188. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/phi3_transformer.py +0 -0
  189. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/qwen_transformer.py +0 -0
  190. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/starcoder_transformer.py +0 -0
  191. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/seq2seq/t5_transformer.py +0 -0
  192. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/similarity/__init__.py +0 -0
  193. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/similarity/document_similarity_ranker.py +0 -0
  194. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/spell_check/__init__.py +0 -0
  195. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/spell_check/context_spell_checker.py +0 -0
  196. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/spell_check/norvig_sweeting.py +0 -0
  197. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/spell_check/symmetric_delete.py +0 -0
  198. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/stemmer.py +0 -0
  199. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/stop_words_cleaner.py +0 -0
  200. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/tf_ner_dl_graph_builder.py +0 -0
  201. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/token/__init__.py +0 -0
  202. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/token/chunk_tokenizer.py +0 -0
  203. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/token/recursive_tokenizer.py +0 -0
  204. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/token/regex_tokenizer.py +0 -0
  205. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/token/tokenizer.py +0 -0
  206. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/token2_chunk.py +0 -0
  207. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ws/__init__.py +0 -0
  208. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/annotator/ws/word_segmenter.py +0 -0
  209. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/__init__.py +0 -0
  210. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/audio_assembler.py +0 -0
  211. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/doc2_chunk.py +0 -0
  212. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/document_assembler.py +0 -0
  213. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/embeddings_finisher.py +0 -0
  214. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/finisher.py +0 -0
  215. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/graph_finisher.py +0 -0
  216. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/has_recursive_fit.py +0 -0
  217. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/has_recursive_transform.py +0 -0
  218. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/image_assembler.py +0 -0
  219. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/light_pipeline.py +0 -0
  220. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/multi_document_assembler.py +0 -0
  221. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/prompt_assembler.py +0 -0
  222. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/recursive_pipeline.py +0 -0
  223. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/table_assembler.py +0 -0
  224. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/base/token_assembler.py +0 -0
  225. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/__init__.py +0 -0
  226. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/annotator_approach.py +0 -0
  227. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/annotator_model.py +0 -0
  228. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/annotator_properties.py +0 -0
  229. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/annotator_type.py +0 -0
  230. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/coverage_result.py +0 -0
  231. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/match_strategy.py +0 -0
  232. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/properties.py +0 -0
  233. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/read_as.py +0 -0
  234. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/recursive_annotator_approach.py +0 -0
  235. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/storage.py +0 -0
  236. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/common/utils.py +0 -0
  237. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/functions.py +0 -0
  238. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/internal/annotator_java_ml.py +0 -0
  239. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/internal/annotator_transformer.py +0 -0
  240. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/internal/extended_java_wrapper.py +0 -0
  241. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/internal/params_getters_setters.py +0 -0
  242. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/internal/recursive.py +0 -0
  243. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/logging/__init__.py +0 -0
  244. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/logging/comet.py +0 -0
  245. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/partition/__init__.py +0 -0
  246. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/partition/partition.py +0 -0
  247. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/partition/partition_properties.py +0 -0
  248. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/partition/partition_transformer.py +0 -0
  249. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/pretrained/__init__.py +0 -0
  250. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/pretrained/pretrained_pipeline.py +0 -0
  251. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/pretrained/resource_downloader.py +0 -0
  252. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/pretrained/utils.py +0 -0
  253. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/reader/__init__.py +0 -0
  254. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/reader/enums.py +0 -0
  255. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/reader/sparknlp_reader.py +0 -0
  256. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/__init__.py +0 -0
  257. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/__init__.py +0 -0
  258. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/graph_builders.py +0 -0
  259. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/ner_dl/__init__.py +0 -0
  260. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/ner_dl/create_graph.py +0 -0
  261. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/ner_dl/dataset_encoder.py +0 -0
  262. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/ner_dl/ner_model.py +0 -0
  263. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/ner_dl/ner_model_saver.py +0 -0
  264. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/ner_dl/sentence_grouper.py +0 -0
  265. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/__init__.py +0 -0
  266. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/core_rnn_cell.py +0 -0
  267. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/fused_rnn_cell.py +0 -0
  268. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/gru_ops.py +0 -0
  269. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/lstm_ops.py +0 -0
  270. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/rnn.py +0 -0
  271. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders/tf2contrib/rnn_cell.py +0 -0
  272. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/__init__.py +0 -0
  273. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/graph_builders.py +0 -0
  274. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/ner_dl/__init__.py +0 -0
  275. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/ner_dl/create_graph.py +0 -0
  276. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/ner_dl/dataset_encoder.py +0 -0
  277. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/ner_dl/ner_model.py +0 -0
  278. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/ner_dl/ner_model_saver.py +0 -0
  279. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/_tf_graph_builders_1x/ner_dl/sentence_grouper.py +0 -0
  280. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/conll.py +0 -0
  281. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/conllu.py +0 -0
  282. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/pos.py +0 -0
  283. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/pub_tator.py +0 -0
  284. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/spacy_to_annotation.py +0 -0
  285. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/training/tfgraphs.py +0 -0
  286. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/upload_to_hub.py +0 -0
  287. {spark_nlp-6.0.3 → spark_nlp-6.0.4}/sparknlp/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spark-nlp
3
- Version: 6.0.3
3
+ Version: 6.0.4
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
@@ -102,7 +102,7 @@ $ java -version
102
102
  $ conda create -n sparknlp python=3.7 -y
103
103
  $ conda activate sparknlp
104
104
  # spark-nlp by default is based on pyspark 3.x
105
- $ pip install spark-nlp==6.0.3 pyspark==3.3.1
105
+ $ pip install spark-nlp==6.0.4 pyspark==3.3.1
106
106
  ```
107
107
 
108
108
  In Python console or Jupyter `Python3` kernel:
@@ -168,7 +168,7 @@ For a quick example of using pipelines and models take a look at our official [d
168
168
 
169
169
  ### Apache Spark Support
170
170
 
171
- Spark NLP *6.0.3* 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.4* 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
172
172
 
173
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 |
174
174
  |-----------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|
@@ -198,7 +198,7 @@ Find out more about 4.x `SparkNLP` versions in our official [documentation](http
198
198
 
199
199
  ### Databricks Support
200
200
 
201
- Spark NLP 6.0.3 has been tested and is compatible with the following runtimes:
201
+ Spark NLP 6.0.4 has been tested and is compatible with the following runtimes:
202
202
 
203
203
  | **CPU** | **GPU** |
204
204
  |--------------------|--------------------|
@@ -215,7 +215,7 @@ We are compatible with older runtimes. For a full list check databricks support
215
215
 
216
216
  ### EMR Support
217
217
 
218
- Spark NLP 6.0.3 has been tested and is compatible with the following EMR releases:
218
+ Spark NLP 6.0.4 has been tested and is compatible with the following EMR releases:
219
219
 
220
220
  | **EMR Release** |
221
221
  |--------------------|
@@ -63,7 +63,7 @@ $ java -version
63
63
  $ conda create -n sparknlp python=3.7 -y
64
64
  $ conda activate sparknlp
65
65
  # spark-nlp by default is based on pyspark 3.x
66
- $ pip install spark-nlp==6.0.3 pyspark==3.3.1
66
+ $ pip install spark-nlp==6.0.4 pyspark==3.3.1
67
67
  ```
68
68
 
69
69
  In Python console or Jupyter `Python3` kernel:
@@ -129,7 +129,7 @@ For a quick example of using pipelines and models take a look at our official [d
129
129
 
130
130
  ### Apache Spark Support
131
131
 
132
- Spark NLP *6.0.3* 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
132
+ Spark NLP *6.0.4* 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
133
133
 
134
134
  | 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 |
135
135
  |-----------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|
@@ -159,7 +159,7 @@ Find out more about 4.x `SparkNLP` versions in our official [documentation](http
159
159
 
160
160
  ### Databricks Support
161
161
 
162
- Spark NLP 6.0.3 has been tested and is compatible with the following runtimes:
162
+ Spark NLP 6.0.4 has been tested and is compatible with the following runtimes:
163
163
 
164
164
  | **CPU** | **GPU** |
165
165
  |--------------------|--------------------|
@@ -176,7 +176,7 @@ We are compatible with older runtimes. For a full list check databricks support
176
176
 
177
177
  ### EMR Support
178
178
 
179
- Spark NLP 6.0.3 has been tested and is compatible with the following EMR releases:
179
+ Spark NLP 6.0.4 has been tested and is compatible with the following EMR releases:
180
180
 
181
181
  | **EMR Release** |
182
182
  |--------------------|
@@ -41,7 +41,7 @@ setup(
41
41
  # project code, see
42
42
  # https://packaging.python.org/en/latest/single_source_version.html
43
43
 
44
- version='6.0.3', # Required
44
+ version='6.0.4', # Required
45
45
 
46
46
  # This is a one-line description or tagline of what your project does. This
47
47
  # corresponds to the 'Summary' metadata field:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spark-nlp
3
- Version: 6.0.3
3
+ Version: 6.0.4
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
@@ -102,7 +102,7 @@ $ java -version
102
102
  $ conda create -n sparknlp python=3.7 -y
103
103
  $ conda activate sparknlp
104
104
  # spark-nlp by default is based on pyspark 3.x
105
- $ pip install spark-nlp==6.0.3 pyspark==3.3.1
105
+ $ pip install spark-nlp==6.0.4 pyspark==3.3.1
106
106
  ```
107
107
 
108
108
  In Python console or Jupyter `Python3` kernel:
@@ -168,7 +168,7 @@ For a quick example of using pipelines and models take a look at our official [d
168
168
 
169
169
  ### Apache Spark Support
170
170
 
171
- Spark NLP *6.0.3* 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.4* 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
172
172
 
173
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 |
174
174
  |-----------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|
@@ -198,7 +198,7 @@ Find out more about 4.x `SparkNLP` versions in our official [documentation](http
198
198
 
199
199
  ### Databricks Support
200
200
 
201
- Spark NLP 6.0.3 has been tested and is compatible with the following runtimes:
201
+ Spark NLP 6.0.4 has been tested and is compatible with the following runtimes:
202
202
 
203
203
  | **CPU** | **GPU** |
204
204
  |--------------------|--------------------|
@@ -215,7 +215,7 @@ We are compatible with older runtimes. For a full list check databricks support
215
215
 
216
216
  ### EMR Support
217
217
 
218
- Spark NLP 6.0.3 has been tested and is compatible with the following EMR releases:
218
+ Spark NLP 6.0.4 has been tested and is compatible with the following EMR releases:
219
219
 
220
220
  | **EMR Release** |
221
221
  |--------------------|
@@ -20,6 +20,7 @@ sparknlp/util.py
20
20
  sparknlp/annotator/__init__.py
21
21
  sparknlp/annotator/chunk2_doc.py
22
22
  sparknlp/annotator/chunker.py
23
+ sparknlp/annotator/dataframe_optimizer.py
23
24
  sparknlp/annotator/date2_chunk.py
24
25
  sparknlp/annotator/document_character_text_splitter.py
25
26
  sparknlp/annotator/document_normalizer.py
@@ -125,6 +126,7 @@ sparknlp/annotator/embeddings/e5v_embeddings.py
125
126
  sparknlp/annotator/embeddings/elmo_embeddings.py
126
127
  sparknlp/annotator/embeddings/instructor_embeddings.py
127
128
  sparknlp/annotator/embeddings/longformer_embeddings.py
129
+ sparknlp/annotator/embeddings/minilm_embeddings.py
128
130
  sparknlp/annotator/embeddings/mpnet_embeddings.py
129
131
  sparknlp/annotator/embeddings/mxbai_embeddings.py
130
132
  sparknlp/annotator/embeddings/nomic_embeddings.py
@@ -66,7 +66,7 @@ sys.modules['com.johnsnowlabs.ml.ai'] = annotator
66
66
  annotators = annotator
67
67
  embeddings = annotator
68
68
 
69
- __version__ = "6.0.3"
69
+ __version__ = "6.0.4"
70
70
 
71
71
 
72
72
  def start(gpu=False,
@@ -0,0 +1,216 @@
1
+ # Copyright 2017-2025 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
+ from pyspark.ml import Transformer
15
+ from pyspark.ml.param.shared import *
16
+ from pyspark.sql import DataFrame
17
+ from typing import Any
18
+
19
+ # Custom converter for string-to-string dictionaries
20
+ def toStringDict(value):
21
+ if not isinstance(value, dict):
22
+ raise TypeError("Expected a dictionary of strings.")
23
+ return {str(k): str(v) for k, v in value.items()}
24
+
25
+ class DataFrameOptimizer(Transformer):
26
+ """
27
+ Optimizes a Spark DataFrame by repartitioning, optionally caching, and persisting it to disk.
28
+
29
+ This transformer is intended to improve performance for Spark NLP pipelines or when preparing
30
+ data for export. It allows partition tuning via `numPartitions` directly, or indirectly using
31
+ `executorCores` and `numWorkers`. The DataFrame can also be persisted in a specified format
32
+ (`csv`, `json`, or `parquet`) with additional writer options.
33
+
34
+ Parameters
35
+ ----------
36
+ executorCores : int, optional
37
+ Number of cores per Spark executor (used to compute number of partitions if `numPartitions` is not set).
38
+
39
+ numWorkers : int, optional
40
+ Number of executor nodes (used to compute number of partitions if `numPartitions` is not set).
41
+
42
+ numPartitions : int, optional
43
+ Target number of partitions for the DataFrame (overrides calculation via cores × workers).
44
+
45
+ doCache : bool, default False
46
+ Whether to cache the DataFrame after repartitioning.
47
+
48
+ persistPath : str, optional
49
+ Path to save the DataFrame output (if persistence is enabled).
50
+
51
+ persistFormat : str, optional
52
+ Format to persist the DataFrame in: one of `'csv'`, `'json'`, or `'parquet'`.
53
+
54
+ outputOptions : dict, optional
55
+ Dictionary of options for the DataFrameWriter (e.g., `{"compression": "snappy"}` for parquet).
56
+
57
+ Examples
58
+ --------
59
+ >>> optimizer = DataFrameOptimizer() \\
60
+ ... .setExecutorCores(4) \\
61
+ ... .setNumWorkers(5) \\
62
+ ... .setDoCache(True) \\
63
+ ... .setPersistPath("/tmp/out") \\
64
+ ... .setPersistFormat("parquet") \\
65
+ ... .setOutputOptions({"compression": "snappy"})
66
+
67
+ >>> optimized_df = optimizer.transform(input_df)
68
+
69
+ Notes
70
+ -----
71
+ - You must specify either `numPartitions`, or both `executorCores` and `numWorkers`.
72
+ - Schema is preserved; no columns are modified or removed.
73
+ """
74
+
75
+ executorCores = Param(
76
+ Params._dummy(),
77
+ "executorCores",
78
+ "Number of cores per executor",
79
+ typeConverter = TypeConverters.toInt
80
+ )
81
+ numWorkers = Param(
82
+ Params._dummy(),
83
+ "numWorkers",
84
+ "Number of Spark workers",
85
+ typeConverter = TypeConverters.toInt
86
+ )
87
+ numPartitions = Param(
88
+ Params._dummy(),
89
+ "numPartitions",
90
+ "Total number of partitions (overrides executorCores * numWorkers)",
91
+ typeConverter = TypeConverters.toInt
92
+ )
93
+ doCache = Param(
94
+ Params._dummy(),
95
+ "doCache",
96
+ "Whether to cache the DataFrame",
97
+ typeConverter = TypeConverters.toBoolean
98
+ )
99
+
100
+ persistPath = Param(
101
+ Params._dummy(),
102
+ "persistPath",
103
+ "Optional path to persist the DataFrame",
104
+ typeConverter = TypeConverters.toString
105
+ )
106
+ persistFormat = Param(
107
+ Params._dummy(),
108
+ "persistFormat",
109
+ "Format to persist: parquet, json, csv",
110
+ typeConverter = TypeConverters.toString
111
+ )
112
+
113
+ outputOptions = Param(
114
+ Params._dummy(),
115
+ "outputOptions",
116
+ "Additional writer options",
117
+ typeConverter=toStringDict
118
+ )
119
+
120
+ def __init__(self):
121
+ super().__init__()
122
+ self._setDefault(
123
+ doCache=False,
124
+ persistFormat="none",
125
+ numPartitions=1,
126
+ executorCores=1,
127
+ numWorkers=1
128
+ )
129
+
130
+ # Parameter setters
131
+ def setExecutorCores(self, value: int):
132
+ """Set the number of executor cores."""
133
+ return self._set(executorCores=value)
134
+
135
+ def setNumWorkers(self, value: int):
136
+ """Set the number of Spark workers."""
137
+ return self._set(numWorkers=value)
138
+
139
+ def setNumPartitions(self, value: int):
140
+ """Set the total number of partitions (overrides cores * workers)."""
141
+ return self._set(numPartitions=value)
142
+
143
+ def setDoCache(self, value: bool):
144
+ """Set whether to cache the DataFrame."""
145
+ return self._set(doCache=value)
146
+
147
+ def setPersistPath(self, value: str):
148
+ """Set the path where the DataFrame should be persisted."""
149
+ return self._set(persistPath=value)
150
+
151
+ def setPersistFormat(self, value: str):
152
+ """Set the format to persist the DataFrame (parquet, json, csv)."""
153
+ return self._set(persistFormat=value)
154
+
155
+ def setOutputOptions(self, value: dict):
156
+ """Set additional writer options (e.g. for csv headers)."""
157
+ return self._set(outputOptions=value)
158
+
159
+ # Optional bulk setter
160
+ def setParams(self, **kwargs: Any):
161
+ for param, value in kwargs.items():
162
+ self._set(**{param: value})
163
+ return self
164
+
165
+ def _transform(self, dataset: DataFrame) -> DataFrame:
166
+ self._validate_params()
167
+ part_count = self.getOrDefault(self.numPartitions)
168
+ cores = self.getOrDefault(self.executorCores)
169
+ workers = self.getOrDefault(self.numWorkers)
170
+ if cores is None or workers is None:
171
+ raise ValueError("Provide either numPartitions or both executorCores and numWorkers")
172
+ if part_count == 1:
173
+ part_count = cores * workers
174
+
175
+ optimized_df = dataset.repartition(part_count)
176
+
177
+ if self.getOrDefault(self.doCache):
178
+ optimized_df = optimized_df.cache()
179
+
180
+ format = self.getOrDefault(self.persistFormat).lower()
181
+ if format != "none":
182
+ path = self.getOrDefault(self.persistPath)
183
+ if not path:
184
+ raise ValueError("persistPath must be set when persistFormat is not 'none'")
185
+ writer = optimized_df.write.mode("overwrite")
186
+ if self.isDefined(self.outputOptions):
187
+ writer = writer.options(**self.getOrDefault(self.outputOptions))
188
+ if format == "parquet":
189
+ writer.parquet(path)
190
+ elif format == "json":
191
+ writer.json(path)
192
+ elif format == "csv":
193
+ writer.csv(path)
194
+ else:
195
+ raise ValueError(f"Unsupported format: {format}")
196
+
197
+ return optimized_df
198
+
199
+ def _validate_params(self):
200
+ if self.isDefined(self.executorCores):
201
+ val = self.getOrDefault(self.executorCores)
202
+ if val <= 0:
203
+ raise ValueError("executorCores must be > 0")
204
+
205
+ if self.isDefined(self.numWorkers):
206
+ val = self.getOrDefault(self.numWorkers)
207
+ if val <= 0:
208
+ raise ValueError("numWorkers must be > 0")
209
+
210
+ if self.isDefined(self.numPartitions):
211
+ val = self.getOrDefault(self.numPartitions)
212
+ if val <= 0:
213
+ raise ValueError("numPartitions must be > 0")
214
+
215
+ if self.isDefined(self.persistPath) and not self.isDefined(self.persistFormat):
216
+ raise ValueError("persistFormat must be defined when persistPath is set")
@@ -25,6 +25,7 @@ from sparknlp.annotator.embeddings.elmo_embeddings import *
25
25
  from sparknlp.annotator.embeddings.e5_embeddings import *
26
26
  from sparknlp.annotator.embeddings.instructor_embeddings import *
27
27
  from sparknlp.annotator.embeddings.longformer_embeddings import *
28
+ from sparknlp.annotator.embeddings.minilm_embeddings import *
28
29
  from sparknlp.annotator.embeddings.mpnet_embeddings import *
29
30
  from sparknlp.annotator.embeddings.roberta_embeddings import *
30
31
  from sparknlp.annotator.embeddings.roberta_sentence_embeddings import *
@@ -0,0 +1,189 @@
1
+ # Copyright 2017-2022 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
+ """Contains classes for MiniLMEmbeddings."""
15
+
16
+ from sparknlp.common import *
17
+
18
+
19
+ class MiniLMEmbeddings(AnnotatorModel,
20
+ HasEmbeddingsProperties,
21
+ HasCaseSensitiveProperties,
22
+ HasStorageRef,
23
+ HasBatchedAnnotate,
24
+ HasMaxSentenceLengthLimit):
25
+ """Sentence embeddings using MiniLM.
26
+
27
+ MiniLM, a lightweight and efficient sentence embedding model that can generate text embeddings for various NLP tasks (e.g., classification, retrieval, clustering, text evaluation, etc.)
28
+ Note that this annotator is only supported for Spark Versions 3.4 and up.
29
+
30
+ Pretrained models can be loaded with :meth:`.pretrained` of the companion
31
+ object:
32
+
33
+ >>> embeddings = MiniLMEmbeddings.pretrained() \\
34
+ ... .setInputCols(["document"]) \\
35
+ ... .setOutputCol("minilm_embeddings")
36
+
37
+
38
+ The default model is ``"minilm_l6_v2"``, if no name is provided.
39
+
40
+ For available pretrained models please see the
41
+ `Models Hub <https://sparknlp.org/models?q=MiniLM>`__.
42
+
43
+
44
+ ====================== ======================
45
+ Input Annotation types Output Annotation type
46
+ ====================== ======================
47
+ ``DOCUMENT`` ``SENTENCE_EMBEDDINGS``
48
+ ====================== ======================
49
+
50
+ Parameters
51
+ ----------
52
+ batchSize
53
+ Size of every batch , by default 8
54
+ dimension
55
+ Number of embedding dimensions, by default 384
56
+ caseSensitive
57
+ Whether to ignore case in tokens for embeddings matching, by default False
58
+ maxSentenceLength
59
+ Max sentence length to process, by default 512
60
+ configProtoBytes
61
+ ConfigProto from tensorflow, serialized into byte array.
62
+
63
+ References
64
+ ----------
65
+ `MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers <https://arxiv.org/abs/2002.10957>`__
66
+
67
+ `MiniLM Github Repository <https://github.com/microsoft/unilm/tree/master/minilm>`__
68
+
69
+ **Paper abstract**
70
+
71
+ *We present a simple and effective approach to compress large pre-trained Transformer models
72
+ by distilling the self-attention module of the last Transformer layer. The compressed model
73
+ (called MiniLM) can be trained with task-agnostic distillation and then fine-tuned on various
74
+ downstream tasks. We evaluate MiniLM on the GLUE benchmark and show that it achieves comparable
75
+ results with BERT-base while being 4.3x smaller and 5.5x faster. We also show that MiniLM can
76
+ be further compressed to 22x smaller and 12x faster than BERT-base while maintaining comparable
77
+ performance.*
78
+
79
+ Examples
80
+ --------
81
+ >>> import sparknlp
82
+ >>> from sparknlp.base import *
83
+ >>> from sparknlp.annotator import *
84
+ >>> from pyspark.ml import Pipeline
85
+ >>> documentAssembler = DocumentAssembler() \\
86
+ ... .setInputCol("text") \\
87
+ ... .setOutputCol("document")
88
+ >>> embeddings = MiniLMEmbeddings.pretrained() \\
89
+ ... .setInputCols(["document"]) \\
90
+ ... .setOutputCol("minilm_embeddings")
91
+ >>> embeddingsFinisher = EmbeddingsFinisher() \\
92
+ ... .setInputCols(["minilm_embeddings"]) \\
93
+ ... .setOutputCols("finished_embeddings") \\
94
+ ... .setOutputAsVector(True)
95
+ >>> pipeline = Pipeline().setStages([
96
+ ... documentAssembler,
97
+ ... embeddings,
98
+ ... embeddingsFinisher
99
+ ... ])
100
+ >>> data = spark.createDataFrame([["This is a sample sentence for embedding generation.",
101
+ ... "Another example sentence to demonstrate MiniLM embeddings.",
102
+ ... ]]).toDF("text")
103
+ >>> result = pipeline.fit(data).transform(data)
104
+ >>> result.selectExpr("explode(finished_embeddings) as result").show(5, 80)
105
+ +--------------------------------------------------------------------------------+
106
+ | result|
107
+ +--------------------------------------------------------------------------------+
108
+ |[[0.1234567, -0.2345678, 0.3456789, -0.4567890, 0.5678901, -0.6789012...|
109
+ |[[0.2345678, -0.3456789, 0.4567890, -0.5678901, 0.6789012, -0.7890123...|
110
+ +--------------------------------------------------------------------------------+
111
+ """
112
+
113
+ name = "MiniLMEmbeddings"
114
+
115
+ inputAnnotatorTypes = [AnnotatorType.DOCUMENT]
116
+
117
+ outputAnnotatorType = AnnotatorType.SENTENCE_EMBEDDINGS
118
+ configProtoBytes = Param(Params._dummy(),
119
+ "configProtoBytes",
120
+ "ConfigProto from tensorflow, serialized into byte array. Get with config_proto.SerializeToString()",
121
+ TypeConverters.toListInt)
122
+
123
+
124
+ def setConfigProtoBytes(self, b):
125
+ """Sets configProto from tensorflow, serialized into byte array.
126
+
127
+ Parameters
128
+ ----------
129
+ b : List[int]
130
+ ConfigProto from tensorflow, serialized into byte array
131
+ """
132
+ return self._set(configProtoBytes=b)
133
+
134
+ @keyword_only
135
+ def __init__(self, classname="com.johnsnowlabs.nlp.embeddings.MiniLMEmbeddings", java_model=None):
136
+ super(MiniLMEmbeddings, self).__init__(
137
+ classname=classname,
138
+ java_model=java_model
139
+ )
140
+ self._setDefault(
141
+ dimension=384,
142
+ batchSize=8,
143
+ maxSentenceLength=512,
144
+ caseSensitive=False,
145
+ )
146
+
147
+ @staticmethod
148
+ def loadSavedModel(folder, spark_session, use_openvino=False):
149
+ """Loads a locally saved model.
150
+
151
+ Parameters
152
+ ----------
153
+ folder : str
154
+ Folder of the saved model
155
+ spark_session : pyspark.sql.SparkSession
156
+ The current SparkSession
157
+ use_openvino : bool
158
+ Use OpenVINO backend
159
+
160
+ Returns
161
+ -------
162
+ MiniLMEmbeddings
163
+ The restored model
164
+ """
165
+ from sparknlp.internal import _MiniLMLoader
166
+ jModel = _MiniLMLoader(folder, spark_session._jsparkSession, use_openvino)._java_obj
167
+ return MiniLMEmbeddings(java_model=jModel)
168
+
169
+ @staticmethod
170
+ def pretrained(name="minilm_l6_v2", lang="en", remote_loc=None):
171
+ """Downloads and loads a pretrained model.
172
+
173
+ Parameters
174
+ ----------
175
+ name : str, optional
176
+ Name of the pretrained model, by default "minilm_l6_v2"
177
+ lang : str, optional
178
+ Language of the pretrained model, by default "en"
179
+ remote_loc : str, optional
180
+ Optional remote address of the resource, by default None. Will use
181
+ Spark NLPs repositories otherwise.
182
+
183
+ Returns
184
+ -------
185
+ MiniLMEmbeddings
186
+ The restored model
187
+ """
188
+ from sparknlp.pretrained import ResourceDownloader
189
+ return ResourceDownloader.downloadModel(MiniLMEmbeddings, name, lang, remote_loc)
@@ -257,6 +257,16 @@ class _E5Loader(ExtendedJavaWrapper):
257
257
  )
258
258
 
259
259
 
260
+ class _MiniLMLoader(ExtendedJavaWrapper):
261
+ def __init__(self, path, jspark, use_openvino=False):
262
+ super(_MiniLMLoader, self).__init__(
263
+ "com.johnsnowlabs.nlp.embeddings.MiniLMEmbeddings.loadSavedModel",
264
+ path,
265
+ jspark,
266
+ use_openvino,
267
+ )
268
+
269
+
260
270
  class _BGELoader(ExtendedJavaWrapper):
261
271
  def __init__(self, path, jspark):
262
272
  super(_BGELoader, self).__init__(
@@ -1,3 +1,16 @@
1
+ # Copyright 2017-2025 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.
1
14
  from pyspark import keyword_only
2
15
  from pyspark.ml.param import Param, Params, TypeConverters
3
16
  from pyspark.ml.param.shared import HasInputCol, HasOutputCol
@@ -89,6 +102,14 @@ class PdfToText(JavaTransformer, HasInputCol, HasOutputCol,
89
102
  "Force to extract only number of pages",
90
103
  typeConverter=TypeConverters.toBoolean)
91
104
 
105
+ extractCoordinates = Param(Params._dummy(), "extractCoordinates",
106
+ "Force extract coordinates of text.",
107
+ typeConverter=TypeConverters.toBoolean)
108
+
109
+ normalizeLigatures = Param(Params._dummy(), "normalizeLigatures",
110
+ "Whether to convert ligature chars such as 'fl' into its corresponding chars (e.g., {'f', 'l'}).",
111
+ typeConverter=TypeConverters.toBoolean)
112
+
92
113
  @keyword_only
93
114
  def __init__(self):
94
115
  """
@@ -154,4 +175,16 @@ class PdfToText(JavaTransformer, HasInputCol, HasOutputCol,
154
175
  """
155
176
  Sets the value of :py:attr:`sort`.
156
177
  """
157
- return self._set(sort=value)
178
+ return self._set(sort=value)
179
+
180
+ def setExtractCoordinates(self, value):
181
+ """
182
+ Sets the value of :py:attr:`extractCoordinates`.
183
+ """
184
+ return self._set(extractCoordinates=value)
185
+
186
+ def setNormalizeLigatures(self, value):
187
+ """
188
+ Sets the value of :py:attr:`normalizeLigatures`.
189
+ """
190
+ return self._set(normalizeLigatures=value)
File without changes
File without changes