dmmiller612 / bert-extractive-summarizer

Easy to use extractive text summarization with BERT
MIT License
1.39k stars 305 forks source link

ValueError: spacy.strings.StringStore size changed, may indicate binary incompatibility. Expected 112 from C header, got 88 from PyObject #20

Closed dzimmerman-nci closed 4 years ago

dzimmerman-nci commented 4 years ago

I am trying to run the example code and keep getting this error.

dzimmerman-nci commented 4 years ago

I have confirmed that all of my requirements are the same version as the project's

dzimmerman-nci commented 4 years ago

it looks like this might have been a python 3.7 problem. python 3.6 is working for me.

dmmiller612 commented 4 years ago

Interesting. I'll take a look this weekend to get a bug fix/new docker image.

Sid8519 commented 4 years ago

I tried both examples and am getting this type of error ending with segmentation 11, I used Python 3.7, I will try with Python 3.6, interesting project! /opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.morphology.Morphology size changed, may indicate binary incompatibility. Expected 104 from C header, got 112 from PyObject return f(*args, kwds) /opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.vocab.Vocab size changed, may indicate binary incompatibility. Expected 96 from C header, got 104 from PyObject return f(*args, *kwds) /opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.tokens.span.Span size changed, may indicate binary incompatibility. Expected 72 from C header, got 80 from PyObject return f(args, kwds) Segmentation fault: 11

Sid8519 commented 4 years ago

So when I set up a conda environment for python 3.6 the thing works perfectly

dmmiller612 commented 4 years ago

I am guessing the 3.7 issue is related to the spacy lock we are currently in, due to limited support from neuralcoref. Probably worth making neuralcoref optional to get around issues like this.

TheEdoardo93 commented 4 years ago

Taken from here: If you have an error mentioning spacy.strings.StringStore size changed, may indicate binary incompatibility when loading NeuralCoref with import neuralcoref, it means you'll have to install NeuralCoref from the distribution's sources instead of the wheels to get NeuralCoref to build against the most recent version of SpaCy for your system.

In this case, simply re-install neuralcoref as follows:

pip uninstall neuralcoref
pip install neuralcoref --no-binary neuralcoref
AlaFalaki commented 4 years ago

@dmmiller612 I am using Python 3.6.3 and have the "Segmentation fault" error. (also sure about the requirements version) The library works well on google Colab but not on the servers I am working on.

(Also re-installing the Neuralcoref library with the flags did not work for me)

dmmiller612 commented 4 years ago

Thanks @TheEdoardo93, I'll add those instructions to the README. @AlaFalaki, per the neuralcoref instructions, you will need to follow TheEdoarado93 instructions.

AlaFalaki commented 4 years ago

@dmmiller612 I tried @TheEdoardo93's instruction before asking. It did not help. I made a new virtual environment and reinstalled the module (pip install bert-extractive-summarizer), now everything works fine. Don't know why exactly.

dmmiller612 commented 4 years ago

Yeah, that is strange. It is most likely a neuralcoref issue. Neuralcoref and spacy have had some issues with some versions, but the current locked versions in the readme should work. I'll see if I can reproduce.

dmmiller612 commented 4 years ago

This issue was due to the coreference package. This has been addressed in recent versions, allowing coreference to be an add on rather than required. Closing for now.