2

我正在尝试在heroku中部署一个应用程序,它成功完成,但是当我单击查看应用程序时,它会在红色框中显示此错误!

OSError:[E050] 找不到模型“en_core_web_trf”。它似乎不是 Python 包或数据目录的有效路径。

这是我的代码

import spacy_streamlit
import streamlit as st
import pandas as pd
from spacy_transformers import Transformer
from spacy_transformers.pipeline_component import DEFAULT_CONFIG

DEFAULT_TEXT = """Google was founded in September 1998 by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University in California. Together they own about 14 percent of its shares and control 56 percent of the stockholder voting power through supervoting stock. They incorporated Google as a California privately held company on September 4, 1998, in California. Google was then reincorporated in Delaware on October 22, 2002."""

spacy_model = "en_core_web_trf"

st.title("Identifyer")
text = st.text_area("Text to analyze", DEFAULT_TEXT, height=200)
doc = spacy_streamlit.process_text(spacy_model, text)

spacy_streamlit.visualize_ner(
    doc,
    labels=["CARDINAL", "DATE", "EVENT", "FAC", "GPE", "LANGUAGE", "LAW", "LOC", "MONEY", "NORP", "ORDINAL", "ORG", "PERCENT", "PERSON", "PRODUCT", "QUANTITY", "TIME", "WORK_OF_ART"],
    show_table=False,
    title="filter",
)

df = pd.DataFrame(pd.DataFrame({
'type': ["ORG", "DATE", "EVENT", "FAC", "GPE", "LOC", "MONEY", "NORP", "PERCENT", "PERSON", "PRODUCT", "QUANTITY", "TIME", "WORK_OF_ART", "LANGUAGE", "LAW", "ORDINAL", "CARDINAL"],
'meaning': ["Companies, agencies, institutions, etc.", "Absolute or relative dates or periods", "Named hurricanes, battles, wars, sports events, etc.", "Buildings, airports, highways, bridges, etc.", "Countries, cities, states", "Non-GPE locations, mountain ranges, bodies of water", "Monetary values, including unit", "Nationalities or religious or political groups", "Percentage (including “%”)", "People, including fictional", "Vehicles, weapons, foods, etc. (Not services)", "Measurements, as of weight or distance", "Times smaller than a day", "Titles of books, songs, etc.", "Any named language", "Named documents made into laws", "first”, “second”, ...", "Numerals that do not fall under another type"],
}))

df.index = [""] * len(df)
st.table(df)
4

1 回答 1

0

我创建了几个虚拟环境,我注意到,在最后两个中,模型'en_core_web_trf'没有用这个命令正确安装:python3 -m spacy download en_core_web_trf,所以我得到了同样的错误。我不知道为什么,但是当我尝试使用python而不是python3时,它起作用了:python -m spacy download en_core_web_trf。如果没问题,您将看到以下文本:

✔ Download and installation successful You can now load the package via spacy.load('en_core_web_trf')

另一个有趣的点是,当我的应用程序在另一个虚拟环境中运行时,我无法在一个虚拟环境中安装模型。

如果有人可以向我解释为什么会发生这种情况,以及为什么 python 正确地为 spacy 安装模型,但 python3 没有,我将非常感激。(我使用 Kubuntu linux)

更新
您似乎没有模型,或者安装不正确。pip show en_core_web_trf如果您使用的是虚拟环境,请尝试检查您的模型的版本,或者重新安装 spacy 和模型。

于 2021-05-18T19:44:06.490 回答