将CSV输入到SpaCy的自定义NER模型中

我对机器学习和Python非常陌生,非常感谢任何关于这个问题的帮助。我已经使用Prodigy(基于en_core_web_lg)训练了一个NER模型,并将模型保存到了我的虚拟环境中:

我的模型

我在Windows 10上使用CONDA/VSCODE,SpaCy 2.x环境,现在我正在尝试加载一个看起来像这样的逗号分隔的CSV文件:

输入图像描述

nlp = spacy.load("en_core_web_lg", disable=["ner"]) #移除基础模型的NER
print(nlp.pipe_names) #检查是否已移除
nlp_entity = spacy.load("tmp_model", vocab=nlp.vocab) #加载我的临时模型
nlp.add_pipe(nlp_entity.get_pipe("ner")) #重新添加NER
print(nlp.pipe_names) #检查是否已重新添加
nlp.to_disk("./tmp_model2") #将组合保存为新模型名称
nlp=spacy.load("tmp_model2") #加载新模型
doc=nlp("这里的段落文本") #用这段文本测试模型,看看是否工作
print(doc.text)
for ent in doc.ents: #对于文档中的所有实体
    print(ent.label_, ent.text) #获取标签和文本

从这里开始,我遇到了困境。我对自己说,我可以这样读取CSV文件:

input = pd.read_csv('myfile.csv') #通过Pandas读取CSV
doc=nlp(input['Text']) #查找CSV文件中的“Text”列,并为每一行运行模型
for ent in doc.ents:
    print(ent.label_, ent.text)

TypeError: 参数’string’类型错误(期望str,得到Series)

我对Python非常非常陌生,但我认为我需要将Pandas数据框转换为字符串?如果是这样,我该如何做呢?


回答:

nlp接受字符串作为输入,你的想法是正确的。

如果你想在一个段落上使用它,你可以这样做:

doc=nlp(input['Text'].values[0])

其中0是段落的编号。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注