AllenNLP не может быть предложениями. Что-то сломалось по пути

Простые предложения, содержащие глагол, не возвращают результатов для семантической разметки ролей ни через демонстрационную страницу, ни с помощью AllenNLP в Python3.8 с последней базовой моделью November Bert.

Например, я здесь. ничего не возвращает.

Суммируя:

  • Примеры простых предложений A - B не возвращают никаких результатов.
  • Я считаю, что должен быть какой-то вывод, поскольку другие механизмы SRL возвращают результаты.
  • То же самое и со мной. Ожидаемый результат - ARG1 для I и предикат am.

Раньше это работало с более ранней версией:

allennlp==1.0.0
allennlp-models==1.0.0

Связанные проблемы или возможные дубликаты

  • Никто

Среда

ОС: macOS 10.15.7 (Каталина)

Версия Python: 3.8.6 (через home-brew)

allennlp==1.2.2
allennlp-models==1.2.2
attrs==20.3.0
blis==0.4.1
boto3==1.16.24
botocore==1.19.24
catalogue==1.0.0
certifi==2020.11.8
chardet==3.0.4
click==7.1.2
conllu==4.2.1
cymem==2.0.4
dataclasses==0.6
filelock==3.0.12
ftfy==5.8
future==0.18.2
h5py==3.1.0
idna==2.10
importlib-metadata==3.1.0
iniconfig==1.1.1
jmespath==0.10.0
joblib==0.17.0
jsonnet==0.17.0
jsonpickle==1.4.1
murmurhash==1.0.4
nltk==3.5
numpy==1.19.4
overrides==3.1.0
packaging==20.4
plac==1.1.3
pluggy==0.13.1
preshed==3.0.4
protobuf==3.14.0
py==1.9.0
py-rouge==1.1
pyparsing==2.4.7
pytest==6.1.2
python-dateutil==2.8.1
regex==2020.11.13
requests==2.25.0
s3transfer==0.3.3
sacremoses==0.0.43
scikit-learn==0.23.2
scipy==1.5.4
sentencepiece==0.1.91
six==1.15.0
spacy==2.3.2
srsly==1.0.4
tensorboardX==2.1
thinc==7.4.1
threadpoolctl==2.1.0
tokenizers==0.9.3
toml==0.10.2
torch==1.7.0
tqdm==4.53.0
transformers==3.5.1
typing-extensions==3.7.4.3
urllib3==1.26.2
wasabi==0.8.0
wcwidth==0.2.5
word2number==1.1
zipp==3.4.0

Действия по воспроизведению

Посетите демонстрационный веб-сайт SRL

Example:

Введите почти любой вариант: Я здесь. Мы люди. Я.

#  https://demo.allennlp.org/semantic-role-labeling/MjU3NDk3NA==

# or
from allennlp.predictors.predictor import Predictor

allen_predictor_srl = Predictor.from_path(
    "./models/bert-base-srl-2020.11.19.tar.gz"
)

output = allen_predictor_srl.predict(sentence="I am here.")
print(output)

# observe nothing

РЕДАКТИРОВАТЬ: Я попытался установить те версии библиотеки, которые у меня были (например, AllenNLP 1.0), но проблема не устранена. Честно говоря, я понятия не имею, что происходит.

РЕДАКТИРОВАТЬ 2:

Установить скрипт:

python3 -m venv env
source ./env/bin/activate


pip3 install --upgrade pip

pip3 install -U --no-cache-dir

pip3 install -U allennlp allennlp-models --no-cache-dir

python3 -m spacy download en_core_web_lg    --no-cache-dir
python3 -m spacy download en_core_web_sm    --no-cache-dir
python3 -m spacy download en_vectors_web_lg --no-cache-dir
python3 -m spacy download de_core_news_md   --no-cache-dir

person synchronizer    schedule 25.11.2020    source источник
comment
Трудно быть Грутом   -  person Mad Physicist    schedule 26.11.2020
comment
Я не понимаю. Это блокирует крупный проект, и, похоже, это произошло из ниоткуда, например Это собака не обнаруживает никаких ССС. Раньше так было.   -  person synchronizer    schedule 26.11.2020
comment
Возможно, вам придется проследить код библиотеки вручную.   -  person Mad Physicist    schedule 26.11.2020
comment
Разные модели дают разные результаты. Я вижу это только в NMN Drop - demo.allennlp.org/reading-comprehension   -  person Doyousketch2    schedule 26.11.2020
comment
Я заметил, что у вас есть cymem в списке. Возможно, вместо ваших обновленных скриптов читается предыдущий cythonized модуль. Вы можете попробовать удалить .pyc / .pyx из этих подкаталогов.   -  person Doyousketch2    schedule 26.11.2020
comment
@ Doyousketch2 Я попытался стереть всю виртуальную среду, которую я настроил, и установить модели allnnlp и allnnlp из исходников. Та же проблема. Где находится .pyc? Я работаю на macOS без CUDA (конечно, поскольку все это дискретно от Radeon). Вы хотите сказать, что библиотека у вас в последней версии работает нормально? Я полагаю, что, возможно, что-то тоже кешируется, но я действительно не уверен, что и где.   -  person synchronizer    schedule 26.11.2020
comment
Чтобы уточнить, больше ни у кого не возникает этой проблемы?   -  person synchronizer    schedule 26.11.2020
comment
Нет, просто говорю, что я уже сталкивался с этим раньше, когда вместо нового содержимого скрипта просматривался кэшированный предварительно скомпилированный код Python. Мне пришлось удалить файлы .pyx, чтобы получить ожидаемые результаты, и вы указали --no-cache, что напомнило мне об этом. Возможно, вам придется связаться с ними через GitHub и отправить отчет об ошибке - github.com/allenai/allennlp/ проблемы   -  person Doyousketch2    schedule 26.11.2020
comment
Ага, я сделал это. Ответа пока нет. Я очень волнуюсь, потому что это блокирует весь мой выпускной продукт. Это не только отсутствие результатов. Я также получаю худшие результаты в целом по придаточным предложениям и так далее. Что-то определенно не так. Есть ли шанс, что кто-то сможет проверить с помощью последней версии, что происходит с This is a dog? Я получаю: {'verbs': [], 'words': ['This', 'is', 'a', 'dog', '.']} AKA ничего.   -  person synchronizer    schedule 26.11.2020
comment
Кроме того, я попытался перейти на более раннюю версию allennnlp (v 1.0, которую я использовал ранее), и проблема не исчезла.   -  person synchronizer    schedule 26.11.2020
comment
Я только что подтвердил, что эта же проблема существует при новой установке ... на Linux-машине. Все то же самое. Что-то определенно не так.   -  person synchronizer    schedule 26.11.2020


Ответы (1)


Чтобы обеспечить некоторое закрытие, проблема была вызвана обновлением в Spacy. У нас есть исправление в https://github.com/allenai/allennlp-models/pull/178 (спасибо, https://github.com/wangrat), и это будет официально выпущен в AllenNLP 1.3.

Если вам понадобится эта функция раньше, мы рекомендуем проверить main ветку AllenNLP и установить ее с pip install -e ..

person Dirk Groeneveld    schedule 12.12.2020
comment
Да, я был участником этого обсуждения. :) Рада, что все решилось. - person synchronizer; 12.12.2020
comment
Я в курсе, но хочу оставить полезную запись о переполнении стека. - person Dirk Groeneveld; 13.12.2020