# Compatibility of versions

**URL:** <https://support.prodi.gy/t/compatibility-of-versions/851>\
**Category:** Uncategorized\
**Tags:** usage, spacy\
**Created:** [September 29, 2018, 6:51pm UTC](https://support.prodi.gy/t/compatibility-of-versions/851 "2018-09-29T18:51:47Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [October 1, 2018, 7:37am UTC](https://support.prodi.gy/t/compatibility-of-versions/851/3 "2018-10-01T07:37:12Z")

</div>

In general, we make sure that Prodigy is always compatible with **stable** spaCy versions. You can obviously try and use it with Prodigy, but I'd only recommend it for experimental purposes. (Also, remember that `spacy-nightly` versions usually require new models.)

But for your use case, I'm not even sure you need to use Prodigy _with_ the alpha version of spaCy? You can still collect your annotations with the current stable version, and then use the match patterns or data to train

> [@GregSilverman](#):
>
> ```json
> {"label":null,"pattern":[{"lower":"HWY SPEEDS"}]}
> 
> ```

Patterns like this are problematic, because as I've explained in the thread you linked, this one will _never_ match. The following will look for _one token_ whose lowercase matches "HWY SPEEDS". This will never be the case, since the string will be split into two tokens: `['HWY', 'SPEEDS']`.

Instead, your patterns can either reflect the tokenization, or you can write exact string match patterns instead:

```json
{"label":null,"pattern":"HWY SPEEDS"}

```

> [@GregSilverman](#):
>
> I guess my question is, when I have multiple labels like this, is there a hack I can do to just pull the label from the database?

For your use case, it sounds like you probably just want to write your own converter script that takes your annotations and outputs the patterns. Basically, something similar to the script I describe at the bottom [of this post](https://support.prodi.gy/t/train-a-new-ner-entity-with-multi-word-tokens/227/2). This will also let you incorporate the patterns automatically. If you look at the source of `terms.to-patterns`, you'll see that it doesn't really do anything magicaly at all – it's just a convenience helper function. All you want to do here it take one data format and convert it to a different one – how you do this is up to you. (You don't even have to use Python if there's a different language you prefer!)

> [@GregSilverman](#):
>
> So far, Prodigy has been fairly straightforward to use, but if circumventing this by scripting out my own pattern files and then using them in spaCy 2.1.x to take advantage of the `EntityRuler` would yield quicker results, then I will certainly do that.

Just to make sure I understand your use case correctly: Do you want to just find exact string matches in your text and label them, or also train a model to generalise based on those strings and find similar occurrences in context?

---

_[View the full topic](https://support.prodi.gy/t/compatibility-of-versions/851)._
