# Continue bert.ner.manual annotating where I left of

**URL:** <https://support.prodi.gy/t/continue-bert-ner-manual-annotating-where-i-left-of/6509>\
**Category:** Uncategorized\
**Tags:** ner, solved\
**Created:** [April 24, 2023, 6:49pm UTC](https://support.prodi.gy/t/continue-bert-ner-manual-annotating-where-i-left-of/6509 "2023-04-24T18:49:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![thondeboer](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/thondeboer/32/3743_2.png) [@thondeboer](https://support.prodi.gy/u/thondeboer)\
**Post date:** [April 24, 2023, 6:49pm UTC](https://support.prodi.gy/t/continue-bert-ner-manual-annotating-where-i-left-of/6509/1 "2023-04-24T18:49:11Z")

</div>

I am trying to annotate some text with the custom recipe bert.ner.manual and after I do a couple of annotations, save them and stop the prodigy server and restart it, it does not start the annotations from where I left of, but starts from scratch again.

I looked at the ner.manual recipe and can't find anything special about how it does that, so how could I make the custom recipe "bert.ner.manual" to behave the same?

---

<div class="post-metadata">

**Author:** ![thondeboer](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/thondeboer/32/3743_2.png) [@thondeboer](https://support.prodi.gy/u/thondeboer)\
**Post date:** [April 24, 2023, 6:54pm UTC](https://support.prodi.gy/t/continue-bert-ner-manual-annotating-where-i-left-of/6509/2 "2023-04-24T18:54:35Z")

</div>

I tried the solution seen here: [--exclude is not working for ner.make-gold on same dataset](https://support.prodi.gy/t/exclude-is-not-working-for-ner-make-gold-on-same-dataset/734) but it did not work and seems old anyway.

---

<div class="post-metadata">

**Author:** ![ryanwesslen](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ryanwesslen/32/2969_2.png) [@ryanwesslen](https://support.prodi.gy/u/ryanwesslen)\
**Post date:** [April 24, 2023, 8:33pm UTC](https://support.prodi.gy/t/continue-bert-ner-manual-annotating-where-i-left-of/6509/3 "2023-04-24T20:33:19Z")

</div>

hi @thondeboer!

Thanks for your message and welcome to the Prodigy community 👋

It's a bit hard to know without seeing the recipe. However, it's sounding like [hashing](https://prodi.gy/docs/api-loaders#hashing) isn't working correctly.

One simple way to test would be to change `exclude_by`: `input` in your [configuration](https://prodi.gy/docs/install#config) (either `prodigy.json`, override, or returned in your recipe). This will try to hash by `input`, instead of `task`.

But another possibility is that you're not even hashing to begin with.

Like [`bert.ner.manual`](https://github.com/explosion/prodigy-recipes/blob/0037b32d954e0b1672f9dae1e8aa53ac0c9136e3/other/transformers_tokenizers.py#L45), are you loading your input source like:

```python
stream = get_stream(source, loader=loader, input_key="text")

```

Can you instead try add `rehash = True` and `dedup = True` (not needed, but default behavior):

```python
stream = get_stream(source, loader=loader, input_key="text", rehash = True, dedup = True)

```

This may be a typo in that recipe. Typically, built in recipes use [`get_stream`](https://prodi.gy/docs/api-components#get_stream) with the arguments `rehash = True` and `dedup = True`.

Alternatively, you could add in hashes using [`set_hashes`](https://prodi.gy/docs/api-components#set_hashes). This is what the `rehash = True` flag does.

---

<div class="post-metadata">

**Author:** ![thondeboer](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/thondeboer/32/3743_2.png) [@thondeboer](https://support.prodi.gy/u/thondeboer)\
**Post date:** [April 25, 2023, 3:21pm UTC](https://support.prodi.gy/t/continue-bert-ner-manual-annotating-where-i-left-of/6509/4 "2023-04-25T15:21:42Z")

</div>

HI, I am using the recipe as provided by the prodigy-recipes repo on github ([prodigy-recipes/transformers\_tokenizers.py at master · explosion/prodigy-recipes · GitHub](https://github.com/explosion/prodigy-recipes/blob/master/other/transformers_tokenizers.py)).

It does not seem to use those `rehash=True` and `dedup=True` options and adding them indeed solved the issue...It is now correctly starting where I left off...

I did not see those options in the default `ner.manual` recipe in the github entry, since it is using `stream = JSONL(source)` which I am guessing is already doing the filtering itself.
