Introducing RustNLPService - Your Go-To NLP API Docker Image

The RustNLPService provides a suite of NLP services for various tasks. These tasks are chosen to accomplish 90% of modern NLU workflows. All you have to do is deploy the Docker container in your environment and you are good to go.

Hello everyone!

We are excited to share with you a project we have been working on: RustNLPService.

RustNLPService is a dockerized API service that leverages rust-bert to deliver a suite of Natural Language Processing (NLP) functionalities. The best part? It's available for free on Docker Hub!

Why RustNLPService?

As an avid user of NLP services, we realized there's a need for an easy-to-deploy, all-in-one solution that covers common NLP tasks such as sentiment classification, named entity recognition, and keyword extraction.

Instead of running multiple models or services, with RustNLPService, you have everything you need in one place.

Features

Here are some of the services RustNLPService offers:

  1. Zero Shot Classification: Classify inputs based on candidate labels.
  2. Sentiment Classifier: Analyze sentiments of given text inputs.
  3. Keyword Extraction: Extract pivotal keywords from your textual data.
  4. NER (Named Entity Recognition): Identify and classify named entities in your content.
  5. Part of Speech Tagging: Tag parts of speech in your sentences.
  6. Sentence Embeddings: Convert your sentences into embeddings.

Check our usage details below.

RustNLPService API Documentation

The RustNLPService provides a suite of NLP services for various tasks. These tasks are chosen to accomplish 90% of modern NLU workflows. All you have to do is deploy the Docker container in your environment and you are good to go.
The first time you call the service, there will be a lag as the service donwloads the models from HuggingFace. After this, you should be good.

The backend is powered by https://github.com/guillaume-be/rust-bert

Get the Docker Container

Pull the image docker pull harshsinghal/rustnlpservice:latest

Run the image docker run -p 8000:8000 harshsinghal/rustnlpservice:latest

The following endpoints are available.

Zero Shot Classification

Endpoint: /zero_shot_classification

Method: POST

Request Body:

{
    "inputs": [
        "Who are you voting for in 2020?",
        "The prime minister has announced a stimulus package which was widely criticized by the opposition."
    ],
    "candidate_labels": ["politics", "public health", "economics", "sports"]
}

With cURL do the following;

curl -X POST http://0.0.0.0:8000/api/bert/zero_shot_classification \
-H "Content-Type: application/json" \
-d '{
    "inputs": [
        "Who are you voting for in 2020?",
        "The prime minister has announced a stimulus package which was widely criticized by the opposition."
    ],
    "candidate_labels": ["politics", "public health", "economics", "sports"]
}'

Response

[
  [
    {
      "id": 0,
      "score": 0.0827459916472435,
      "sentence": 0,
      "text": "politics"
    },
    {
      "id": 1,
      "score": 0.7325928211212158,
      "sentence": 0,
      "text": "public health"
    },
    {
      "id": 2,
      "score": 0.3494073748588562,
      "sentence": 0,
      "text": "economics"
    },
    {
      "id": 3,
      "score": 0.6712435483932495,
      "sentence": 0,
      "text": "sports"
    }
  ],
  [
    {
      "id": 0,
      "score": 0.47573956847190857,
      "sentence": 1,
      "text": "politics"
    },
    {
      "id": 1,
      "score": 0.9954654574394226,
      "sentence": 1,
      "text": "public health"
    },
    {
      "id": 2,
      "score": 0.5234913229942322,
      "sentence": 1,
      "text": "economics"
    },
    {
      "id": 3,
      "score": 0.9996806383132935,
      "sentence": 1,
      "text": "sports"
    }
  ]
]

Sentiment Classifier

Endpoint: /sentiment_classifier

Method: POST

Request Body:

{
    "inputs": [
        "Probably my all-time favorite movie, a story of selflessness, sacrifice and dedication to a noble cause, but it's not preachy or boring.",
        "This film tried to be too many things all at once: stinging political satire, Hollywood blockbuster, sappy romantic comedy, family values promo...",
        "If you like original gut wrenching laughter you will like this movie. If you are young or old then you will love this movie, hell even my mom liked it."
    ]
}

With cURL do the following;

curl -X POST http://0.0.0.0:8000/api/bert/sentiment_classifier \
-H "Content-Type: application/json" \
-d '{
    "inputs": [
        "Probably my all-time favorite movie, a story of selflessness, sacrifice and dedication to a noble cause, but it'\''s not preachy or boring.",
        "This film tried to be too many things all at once: stinging political satire, Hollywood blockbuster, sappy romantic comedy, family values promo...",
        "If you like original gut wrenching laughter you will like this movie. If you are young or old then you will love this movie, hell even my mom liked it."
    ]
}'

Response

[
  {
    "polarity": "Positive",
    "score": 0.9981985688209534
  },
  {
    "polarity": "Negative",
    "score": 0.9927982091903687
  },
  {
    "polarity": "Positive",
    "score": 0.9997249245643616
  }
]

Keyword Extraction

Endpoint: /keyword_extraction

Method: POST

Request Body:

{
    "inputs": [
        "Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency. Rust enforces memory safety—that is, that all references point to valid memory—without requiring the use of a garbage collector or reference counting present in other memory-safe languages. To simultaneously enforce memory safety and prevent concurrent data races, Rust's borrow checker tracks the object lifetime and variable scope of all references in a program during compilation. Rust is popular for systems programming but also offers high-level features including functional programming constructs."
    ]
}

With cURL try the following

curl -X POST http://0.0.0.0:8000/api/bert/keyword_extraction \
-H "Content-Type: application/json" \
-d '{
    "inputs": [
        "Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency..."
    ]
}'

Response

[
  [
    {
      "offsets": [
        {
          "begin": 0,
          "end": 4
        },
        {
          "begin": 64,
          "end": 68
        }
      ],
      "score": 0.6299823522567749,
      "text": "rust"
    },
    {
      "offsets": [
        {
          "begin": 42,
          "end": 53
        }
      ],
      "score": 0.410919725894928,
      "text": "programming"
    },
    {
      "offsets": [
        {
          "begin": 110,
          "end": 121
        }
      ],
      "score": 0.35770243406295776,
      "text": "concurrency"
    },
    {
      "offsets": [
        {
          "begin": 54,
          "end": 62
        }
      ],
      "score": 0.27949613332748413,
      "text": "language"
    },
    {
      "offsets": [
        {
          "begin": 98,
          "end": 104
        }
      ],
      "score": 0.1835670918226242,
      "text": "safety"
    }
  ]
]

NER (Named Entity Recognition) Model

Endpoint: /ner_model

Method: POST

Request Body:

{
    "inputs": [
        "My name is Amy. I live in Paris.",
        "Paris is a city in France."
    ]
}

With cURL do the following

curl -X POST http://0.0.0.0:8000/api/bert/ner_model \
-H "Content-Type: application/json" \
-d '{
    "inputs": [
        "My name is Amy. I live in Paris.",
        "Paris is a city in France."
    ]
}'

Response

[
  [
    {
      "label": "I-PER",
      "offset": {
        "begin": 11,
        "end": 14
      },
      "score": 0.9986183643341064,
      "word": "Amy"
    },
    {
      "label": "I-LOC",
      "offset": {
        "begin": 26,
        "end": 31
      },
      "score": 0.9985653162002563,
      "word": "Paris"
    }
  ],
  [
    {
      "label": "I-LOC",
      "offset": {
        "begin": 0,
        "end": 5
      },
      "score": 0.9981095790863037,
      "word": "Paris"
    },
    {
      "label": "I-LOC",
      "offset": {
        "begin": 19,
        "end": 25
      },
      "score": 0.9984971284866333,
      "word": "France"
    }
  ]
]

Part of Speech Tagging

Endpoint: /part_of_speech_tagging

Method: POST

Request Body:

{
    "inputs": [
        "My name is Bob"
    ]
}

With cURL try the following

curl -X POST http://0.0.0.0:8000/api/bert/part_of_speech_tagging \
-H "Content-Type: application/json" \
-d '{
    "inputs": [
        "My name is Bob"
    ]
}'

Response

[
  [
    {
      "label": "PRP",
      "score": 0.15604880452156067,
      "word": "My"
    },
    {
      "label": "NN",
      "score": 0.656531572341919,
      "word": "name"
    },
    {
      "label": "VBZ",
      "score": 0.3697786033153534,
      "word": "is"
    },
    {
      "label": "NNP",
      "score": 0.7460987567901611,
      "word": "Bob"
    }
  ]
]

Sentence Embeddings

Endpoint: /sentence_embeddings

Method: POST

Request Body:

{
    "inputs": [
        "this is an example sentence",
        "each sentence is converted"
    ]
}

With cURL try the following

curl -X POST http://localhost:8000/api/bert/sentence_embeddings \
-H "Content-Type: application/json" \
-d '{
    "inputs": [
        "this is an example sentence",
        "each sentence is converted"
    ]
}'

Response

[
  [
    -0.00020262888574507087,
    0.08148020505905151,
    0.03136172518134117,
    0.0029206101316958666,
    0.02615642175078392,
    0.029074037447571754,
    0.07826189696788788,
    -0.0018042190931737423,
    0.1013442724943161,
    -0.04517117142677307,
    0.05843495577573776,
    -0.015320130623877048,
    0.05499567463994026,
    -0.0986434668302536,
    -0.03502526134252548,
    0.008456798270344734,
    0.015860775485634804,
    0.010562712326645851,
    -0.03427094966173172,
    -0.004750682506710291,
    0.09990217536687851,
    -0.02060183882713318,
    -0.04478374496102333,
    0.031213585287332535,
    -0.011924093589186668,
    -0.051501549780368805,
    -0.013360578566789627,
    0.018962180241942406,
    0.0976809710264206,
    -0.05441111698746681,
    -0.03433133289217949,
    0.08129052817821503,
    0.04881195351481438,
    -0.011028403416275978,
    0.021351875737309456,
    0.012718983925879002,
    -0.014396743848919868,
    0.03628641739487648,
    -0.07612334936857224,
    0.03232942521572113,
    0.02081025391817093,
    -0.04220158979296684,
    0.09129073470830917,
    0.02085302211344242,
    -0.03080170974135399,
    -0.08385053277015686,
    0.01308909710496664,
    -0.030063100159168243,
    0.041122887283563614,
    -0.12749527394771576,
    -0.07780271768569946,
    -0.03934124857187271,
    0.0015259438659995794,
    -0.028010867536067963,
    0.03416626155376434,
    0.014671247452497482,
    -0.07716533541679382,
    0.1636195331811905,
    0.041129522025585175,
    -0.05244598165154457,
    -0.04187719523906708,
    0.018053211271762848,
    -0.01389213465154171,
    -0.03681883215904236,
    0.069498211145401,
    -0.025708943605422974,
    0.0358545295894146,
    0.02101888693869114,
    -0.03884533420205116,
    0.005489350762218237,
    -0.05245384946465492,
    0.025309527292847633,
    -0.03373384475708008,
    0.13259625434875488,
    -0.06109125167131424,
    0.032603759318590164,
    0.057724468410015106,
    -0.02348477765917778,
    0.021315088495612144,
    -0.0001939231005962938,
    -0.006791404914110899,
    -0.09232708811759949,
    0.008695514872670174,
    0.046763673424720764,
    -0.010959627106785774,
    0.03905831277370453,
    0.04674512892961502,
    -0.06978601962327957,
    -0.008769765496253967,
    -0.004955789539963007,
    -0.0046013118699193,
    -0.013324784114956856,
    0.02326757088303566,
    -0.03534623980522156,
    0.004844896495342255,
    0.011383980512619019,
    -0.0128256157040596,
    -0.06864612549543381,
    0.0905701071023941,
    0.1465769112110138,
    -0.002570770215243101,
    0.001965983072295785,
    -0.04446382075548172,
    0.08929192274808884,
    -0.001844757585786283,
    -0.07394479960203171,
    0.027054263278841972,
    -0.016220927238464355,
    -0.006788767874240875,
    0.005030901171267033,
    0.002873093355447054,
    0.10945522040128708,
    0.005262202117592096,
    -0.026716817170381546,
    0.02402946911752224,
    -0.1020028293132782,
    -0.05513305962085724,
    0.031116241589188576,
    -0.042566265910863876,
    0.024117151275277138,
    0.08622490614652634,
    0.01406202744692564,
    0.05439839884638786,
    0.006582082249224186,
    -0.006545893847942352,
    -0.1825224608182907,
    0.003334801411256194,
    -0.03559744358062744,
    0.07085160166025162,
    -0.09573902934789658,
    -0.019637104123830795,
    -0.038111262023448944,
    -0.033516980707645416,
    -0.01225837878882885,
    -0.01956215873360634,
    -0.018821028992533684,
    0.07090573012828827,
    -0.023827973753213882,
    -0.043825846165418625,
    0.004140451550483704,
    0.023493556305766106,
    0.07089725881814957,
    0.047444071620702744,
    0.1100306436419487,
    -0.014624168165028095,
    0.08385714143514633,
    -0.02499210461974144,
    0.02433948777616024,
    0.025842826813459396,
    0.0034866437781602144,
    0.07757745683193207,
    0.013685358688235283,
    -0.001124268863350153,
    -0.04097753390669823,
    0.00943042617291212,
    0.08891305327415466,
    0.01786748692393303,
    -0.012559780851006508,
    0.02034679427742958,
    0.026827512308955193,
    -0.11238303780555725,
    -0.0043561081402003765,
    -0.03592760115861893,
    0.003593375673517585,
    0.03432663530111313,
    -0.05977125093340874,
    -0.015272716991603374,
    0.019603149965405464,
    -0.018183723092079163,
    0.024306880310177803,
    0.03618648275732994,
    0.014059780165553093,
    0.07639778405427933,
    -0.022979171946644783,
    -0.030205832794308662,
    -0.05180906131863594,
    0.008702287450432777,
    0.01037430576980114,
    0.0212673582136631,
    0.01474995817989111,
    0.01990457996726036,
    -0.03267943486571312,
    -0.055885523557662964,
    0.01333731971681118,
    -0.025530299171805382,
    0.02494642324745655,
    -0.021106718108057976,
    -0.009408969432115555,
    0.06472991406917572,
    0.08339452743530273,
    -0.062127068638801575,
    -0.01804294064640999,
    -0.01311288308352232,
    0.00553959421813488,
    0.00867441575974226,
    -0.04616239294409752,
    0.029396384954452515,
    0.01228394452482462,
    0.029066355898976326,
    -0.024620354175567627,
    -0.03520070016384125,
    0.04118115082383156,
    -0.051174841821193695,
    -0.07299210131168365,
    -0.041523370891809464,
    -0.028216231614351273,
    0.021840862929821014,
    -0.020927920937538147,
    -0.07199085503816605,
    -0.06353459507226944,
    0.02973887324333191,
    0.08868084847927094,
    -0.12057199329137802,
    0.006412975490093231,
    -0.014459467492997646,
    0.0020244750194251537,
    0.021487632766366005,
    0.0411970354616642,
    -0.09974005818367004,
    -0.003586977254599333,
    -0.03198802098631859,
    -0.08882144838571548,
    0.010365691967308521,
    1.4271907604099742e-32,
    -0.0683850422501564,
    0.09518291056156158,
    -0.06603264063596725,
    -0.0013887410750612617,
    0.025154251605272293,
    -0.014937754720449448,
    0.020572971552610397,
    0.0096135837957263,
    -0.05125825107097626,
    0.020012812688946724,
    -0.06832922250032425,
    0.07211507856845856,
    0.001004413585178554,
    0.05335409566760063,
    -0.06638429313898087,
    -0.04968286678195,
    0.006090016104280949,
    0.05826949700713158,
    -0.017933836206793785,
    0.016041910275816917,
    0.002467578509822488,
    0.10989663749933243,
    -0.06047263368964195,
    0.034909553825855255,
    0.00886769499629736,
    0.05382246524095535,
    0.03757118061184883,
    -0.041249506175518036,
    -0.09293379634618759,
    -0.025794807821512222,
    -0.027330510318279266,
    -0.00340194976888597,
    -0.05422455444931984,
    0.0897039845585823,
    -0.0352194719016552,
    0.02806277945637703,
    0.10966574400663376,
    -0.08792870491743088,
    -0.028320463374257088,
    -0.012708478607237339,
    -0.07536768168210983,
    -0.06229446828365326,
    -0.10084597021341324,
    0.16844043135643005,
    -0.06553948670625687,
    -0.020167911425232887,
    0.020491119474172592,
    -0.005050987470895052,
    0.03532139211893082,
    0.018797429278492928,
    -0.08690566569566727,
    -0.044077783823013306,
    0.032455287873744965,
    0.0037313865032047033,
    -0.04697716236114502,
    -0.0069929505698382854,
    -0.011258725076913834,
    -0.030085043981671333,
    0.026413220912218094,
    -0.02547609992325306,
    -0.09445234388113022,
    0.0447598472237587,
    0.02599441260099411,
    0.03366472199559212,
    0.10735515505075455,
    0.02386741153895855,
    -0.05215592682361603,
    -0.02578812651336193,
    -0.008847896009683609,
    -0.04321521520614624,
    -0.05788101628422737,
    -0.005884851794689894,
    -0.04222290962934494,
    0.012516550719738007,
    0.01297567505389452,
    0.016190145164728165,
    -0.020927701145410538,
    -0.08636696636676788,
    -0.05292673408985138,
    -0.000971956760622561,
    0.0520951971411705,
    -0.016528068110346794,
    0.062263574451208115,
    -0.004541771020740271,
    0.028056425973773003,
    0.017149118706583977,
    -0.04035705327987671,
    0.0190637968480587,
    -0.01753343641757965,
    0.041396692395210266,
    0.030692780390381813,
    -0.06785555183887482,
    0.09466316550970078,
    0.061527520418167114,
    -0.026196416467428207,
    1.392126939419296e-32,
    0.014821674674749374,
    -0.152166947722435,
    0.02251305617392063,
    0.02270786464214325,
    0.09229245781898499,
    -0.000217549066292122,
    0.061386898159980774,
    -0.07129814475774765,
    -0.03959638252854347,
    -0.009709103032946587,
    -0.06781943142414093,
    0.0036661617923527956,
    -0.02530558407306671,
    0.09294427186250687,
    0.016062073409557343,
    0.11275286227464676,
    0.0071874940767884254,
    -0.000265171576756984,
    -0.09710437804460526,
    0.002006514696404338,
    0.05145419016480446,
    0.0015656886389479041,
    -0.08627775311470032,
    -0.007978839799761772,
    0.020430922508239746,
    0.008407743647694588,
    -0.07000298798084259,
    0.021912185475230217,
    -0.01664137840270996,
    0.021761953830718994,
    0.024745555594563484,
    0.08932867646217346,
    0.03611992672085762,
    -0.057498298585414886,
    0.009158559143543243,
    0.01251248363405466,
    0.06634191423654556,
    -0.05743967741727829,
    0.028194624930620193,
    -0.06737933307886124,
    -0.020346444100141525,
    0.04749883711338043,
    0.009157461114227772,
    0.08004187792539597,
    0.05649851635098457,
    0.06373029202222824,
    -0.01947581022977829,
    0.005683569237589836,
    0.029342107474803925,
    -0.036142487078905106,
    0.044896624982357025,
    -0.041797202080488205,
    0.058553215116262436,
    -0.0015353062190115452,
    0.03342633321881294,
    -0.03714993968605995,
    0.09137895703315735,
    0.004674021154642105,
    -0.014017416164278984,
    0.021975211799144745,
    0.023848501965403557,
    0.06209304928779602,
    0.049103207886219025,
    -0.0002901764237321913
  ],
  [
    0.06475711613893509,
    0.048519767820835114,
    -0.017860358580946922,
    -0.04797754064202309,
    -0.05908786877989769,
    -0.0521421805024147,
    0.039443161338567734,
    -0.06284447014331818,
    0.06612126529216766,
    0.0765797570347786,
    -0.00021254239254631102,
    0.015319948084652424,
    0.039967745542526245,
    -0.07060147076845169,
    0.02424450032413006,
    -0.04158822074532509,
    -0.0014465362764894962,
    -0.007760478649288416,
    -0.05604255571961403,
    -0.08896283805370331,
    0.07069491595029831,
    0.02102796733379364,
    0.02862260863184929,
    -0.007870840840041637,
    -0.016564564779400826,
    0.07326376438140869,
    -0.09498897939920425,
    0.013172619044780731,
    -0.0072402991354465485,
    -0.053078461438417435,
    0.018275946378707886,
    0.08479014039039612,
    0.020148463547229767,
    -0.00592903234064579,
    0.020632538944482803,
    -0.022633595392107964,
    -0.05856911838054657,
    -0.023669254034757614,
    0.004674491472542286,
    -0.028570951893925667,
    0.041322316974401474,
    0.03864592686295509,
    0.03796108067035675,
    -0.0007851329864934087,
    0.04321156442165375,
    -0.006868764292448759,
    -0.07144475728273392,
    -0.013835781253874302,
    0.06351347267627716,
    -0.03960961475968361,
    -0.0940360575914383,
    -0.028577860444784164,
    -0.05975055322051048,
    0.045022401958703995,
    -0.006715988740324974,
    -0.06953895837068558,
    -0.017032358795404434,
    0.14767423272132874,
    0.008385286666452885,
    -0.06984198838472366,
    -0.09537489712238312,
    0.06272835284471512,
    0.005631159525364637,
    0.0009342908742837608,
    0.04299817234277725,
    -0.023814132437109947,
    0.017498908564448357,
    -0.0416657030582428,
    -0.09106805920600891,
    0.04032444953918457,
    -0.05218810960650444,
    -0.013494868762791157,
    -0.08451497554779053,
    0.01543800625950098,
    -0.005934388842433691,
    -0.05470197647809982,
    0.053660377860069275,
    -0.03311988338828087,
    0.032658256590366364,
    0.00396981043741107,
    0.03145601972937584,
    -0.07803035527467728,
    -0.02360626496374607,
    -0.04905817657709122,
    0.013479042798280716,
    -0.014947156421840191,
    0.0010117909405380487,
    0.013984844088554382,
    -0.0395926795899868,
    0.005175978410989046,
    -0.04149779677391052,
    -0.0750463679432869,
    0.05340784043073654,
    0.02342930994927883,
    -0.00009203489025821909,
    0.05911843851208687,
    0.006002310663461685,
    -0.018379049375653267,
    0.10177678614854813,
    0.16152337193489075,
    -0.030536048114299774,
    0.03343501687049866,
    0.047781895846128464,
    -0.07953768968582153,
    -0.08692190051078796,
    -0.0619172528386116,
    0.03869493678212166,
    0.011651228182017803,
    0.00874071940779686,
    -0.013770238496363163,
    -0.0017931025940924883,
    0.0169417355209589,
    0.042990878224372864,
    0.02157515473663807,
    -0.008634493686258793,
    -0.030008504167199135,
    -0.01568787731230259,
    -0.02492648735642433,
    -0.10175330191850662,
    0.11501515656709671,
    0.05301722139120102,
    0.06117786094546318,
    -0.021013109013438225,
    0.015197963453829288,
    0.015468275174498558,
    -0.1332666128873825,
    0.04298912733793259,
    -0.010495619848370552,
    0.04358772560954094,
    0.014730514958500862,
    0.016896706074476242,
    0.018898682668805122,
    -0.08439072966575623,
    -0.04134441167116165,
    -0.00800979882478714,
    -0.025795752182602882,
    -0.015376180410385132,
    0.04526671767234802,
    -0.024526093155145645,
    -0.051236897706985474,
    0.0428217276930809,
    0.07422157377004623,
    -0.09376909583806992,
    0.06762682646512985,
    -0.028599387034773827,
    0.08174160867929459,
    -0.06864285469055176,
    -0.03614136949181557,
    0.02375858835875988,
    0.07519076764583588,
    0.002612804528325796,
    0.01052007544785738,
    -0.06788168847560883,
    0.0006190669955685735,
    0.031988684087991714,
    0.016200104728341103,
    -0.013204600661993027,
    -0.09047168493270874,
    0.01815146952867508,
    -0.023106306791305542,
    -0.02023630402982235,
    0.0920119509100914,
    0.030935851857066154,
    -0.01703667640686035,
    0.14809846878051758,
    0.018566720187664032,
    -0.014636645093560219,
    0.01430518738925457,
    -0.10724339634180069,
    -0.018697822466492653,
    0.08379130810499191,
    -0.039420027285814285,
    0.024687401950359344,
    0.06745994091033936,
    0.05270054191350937,
    0.0030486807227134705,
    0.05507505312561989,
    -0.029316449537873268,
    0.00990978442132473,
    -0.07448215037584305,
    0.004823833238333464,
    -0.0031327095348387957,
    0.06584533303976059,
    0.02583734318614006,
    0.025480756536126137,
    -0.00871612410992384,
    -0.0013477489119395614,
    0.019122865051031113,
    0.028082091361284256,
    0.036589279770851135,
    -0.0244931448251009,
    -0.08080796152353287,
    0.024913078173995018,
    -0.0053328885696828365,
    -0.017102444544434547,
    0.03386671096086502,
    0.06340046226978302,
    -0.003391705686226487,
    -0.06735412776470184,
    -0.005593825131654739,
    0.021497806534171104,
    0.06572164595127106,
    -0.04738100245594978,
    -0.0793624147772789,
    0.041011374443769455,
    -0.046011097729206085,
    -0.006348584312945604,
    -0.11641205847263336,
    -0.017333971336483955,
    0.018094530329108238,
    0.03683709725737572,
    0.04431409388780594,
    -0.0364832878112793,
    0.08455667644739151,
    -0.009285916574299335,
    0.014072129502892494,
    0.03982258960604668,
    -0.017268726602196693,
    0.042461201548576355,
    -0.08423623442649841,
    -0.09005700051784515,
    -0.10825477540493011,
    0.05116504430770874,
    -6.6265045604725726e-34,
    0.010047715157270432,
    0.14766472578048706,
    -0.1251760572195053,
    0.013069767504930496,
    -0.07722847163677216,
    -0.0404069647192955,
    -0.00022840929159428924,
    0.03999578580260277,
    0.028852278366684914,
    -0.07169932126998901,
    0.05195169895887375,
    -0.011209266260266304,
    -0.0420561358332634,
    0.016541283577680588,
    -0.004648995120078325,
    -0.06904646754264832,
    0.08335946500301361,
    0.13289424777030945,
    0.01719181425869465,
    -0.03901158273220062,
    0.0005030541797168553,
    0.05849169194698334,
    -0.01917751133441925,
    0.040328629314899445,
    -0.11858246475458145,
    -0.022611567750573158,
    0.04321959987282753,
    0.0003733565390575677,
    -0.02607296034693718,
    0.007508466020226479,
    0.02628806233406067,
    -0.00950656272470951,
    -0.030888592824339867,
    0.08536498993635178,
    -0.07863091677427292,
    0.005037764087319374,
    0.010590343736112118,
    -0.050390128046274185,
    -0.03751903027296066,
    0.10257107764482498,
    -0.01008485909551382,
    -0.019219812005758286,
    -0.09513578563928604,
    0.04989999160170555,
    -0.045786455273628235,
    -0.02072390541434288,
    0.006822633557021618,
    -0.010297132655978203,
    0.02797629125416279,
    -0.09241844713687897,
    0.05914466828107834,
    -0.06785799562931061,
    -0.016361474990844727,
    -0.05372973158955574,
    0.025810863822698593,
    -0.03960810601711273,
    -0.013228071853518486,
    -0.08078569918870926,
    0.032410744577646255,
    -0.01177688967436552,
    -0.05646669492125511,
    0.028092773631215096,
    0.013829287141561508,
    -0.006238299421966076,
    0.033643413335084915,
    0.06113498657941818,
    0.01874634623527527,
    0.0801353007555008,
    0.04913624748587608,
    -0.017233895137906075,
    0.009347181767225266,
    -0.013335826806724072,
    -0.013108329847455025,
    0.004161394201219082,
    -0.0054685636423528194,
    -0.09312407672405243,
    -0.04089288040995598,
    -0.024925116449594498,
    -0.05940159782767296,
    -0.031374238431453705,
    0.05262184143066406,
    -0.050377968698740005,
    0.027204172685742378,
    0.02302924171090126,
    0.026585040614008904,
    -0.022151673212647438,
    0.08503558486700058,
    0.06277149170637131,
    -0.025475194677710533,
    0.0460197776556015,
    -0.011726600117981434,
    0.04575243219733238,
    0.07528872042894363,
    0.022162359207868576,
    -0.009469741955399513,
    2.607472752786367e-32,
    -0.04328493773937225,
    -0.06534887105226517,
    -0.14459776878356934,
    0.025364931672811508,
    0.08402831107378006,
    -0.007913483306765556,
    0.031146520748734474,
    -0.12550088763237,
    -0.020570529624819756,
    -0.026311438530683517,
    0.024024691432714462,
    0.031843945384025574,
    -0.05121265724301338,
    0.05790859833359718,
    0.009649419225752354,
    0.0679427832365036,
    0.0011691803811118007,
    0.01939494162797928,
    -0.01345239207148552,
    0.035442203283309937,
    -0.038498736917972565,
    -0.014651046134531498,
    -0.028915373608469963,
    -0.030349625274538994,
    -0.028647275641560555,
    0.02894226834177971,
    -0.011234809644520283,
    0.004189153201878071,
    0.05214282497763634,
    0.0007407996454276145,
    0.030333848670125008,
    0.05121954157948494,
    -0.02302440069615841,
    -0.05675121024250984,
    -0.0276548583060503,
    -0.050641052424907684,
    0.07388609647750854,
    0.03730848431587219,
    0.09662462770938873,
    -0.011150393635034561,
    0.013744260184466839,
    -0.010921218432486057,
    -0.006558236666023731,
    0.006887650582939386,
    -0.06551939249038696,
    0.000681911944411695,
    0.015204100869596004,
    0.01571427471935749,
    0.022338800132274628,
    -0.04505458474159241,
    0.03993792086839676,
    -0.059020232409238815,
    0.0590229332447052,
    -0.05943064019083977,
    0.06644177436828613,
    -0.054190099239349365,
    -0.01882939040660858,
    0.11727383732795715,
    0.008497318252921104,
    0.10795100778341293,
    -0.000706594786606729,
    0.033756885677576065,
    0.008433745242655277,
    -0.06003597006201744
  ]
]