Python 属性错误:';str';对象没有属性';ents&x27;

Python 属性错误:';str';对象没有属性';ents&x27;,python,nlp,nltk,spacy,ner,Python,Nlp,Nltk,Spacy,Ner,我需要你的帮助来解决下面的问题。我正在我的法语文本上应用nlp步骤(停止单词、标记化、ner…)(查看变量txt)。我正在使用Spacy图书馆。 当我想测试返回\u NER方法时,我收到此错误: 回溯(最近一次呼叫最后一次): 删除.ents?您希望代码的这一部分做什么?python中string的join()方法返回一个字符串。此类型没有您正在调用的属性ents。你在一个字符串上循环。词干分析器在你的例子中应该是Doc类,即nlp(text),而你把它作为字符串传递。修复它,您就可以继续了。当

我需要你的帮助来解决下面的问题。我正在我的法语文本上应用nlp步骤(停止单词、标记化、ner…)(查看变量txt)。我正在使用Spacy图书馆。 当我想测试返回\u NER方法时,我收到此错误: 回溯(最近一次呼叫最后一次):


删除
.ents
?您希望代码的这一部分做什么?python中string的join()方法返回一个字符串。此类型没有您正在调用的属性ents。你在一个字符串上循环。
词干分析器
在你的例子中应该是
Doc
类,即
nlp(text)
,而你把它作为字符串传递。修复它,您就可以继续了。当我删除.ents时,我得到以下错误:AttributeError:“str”对象没有属性“text”。这是因为您一直使用字符串,就像它是SpaCy库创建的标记一样。为了工作,您必须更改代码,例如删除ste=“”.join(词干)
File "NLP_treat.py", line 47, in <module>
ner = test.return_NER(stemmers)
File "NLP_treat.py", line 35, in return_NER
Nerr = [(X.text, X.label_) for X in ste.ents]
AttributeError: 'str' object has no attribute 'ents'
import spacy
import json
nlp = spacy.load("fr_core_news_sm")
import string
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.stem.snowball import SnowballStemmer
stemmer = SnowballStemmer(language='french')


class NLP:
def __init__(self, text = None):
    self._text = None
    if text:
        self._text = text 

def tokenize(self, text):
    text = "".join([char for char in text if char not in string.punctuation]).lower()
    tokens = word_tokenize(text)
    return tokens

def rem_stopwords(self, list):
    stopword = set(stopwords.words('french'))
    stopW = [word for word in list if word not in stopword]
    return stopW

def return_stem(self, stopW):
    stems = [stemmer.stem(X) for X in stopW]
    ste = " ".join(stems)
    return ste

def return_NER(self, ste):
    # Retourner le texte et le label pour chaque entité
    Nerr = [(X.text, X.label_) for X in ste.ents]
    return Nerr 


txt = "...L’implémentation d’une stratégie expérimentale des projets Machine Learning. 
L’implémentation d’une structure de validation de la qualité des données.La rédaction de rapports 
portant sur la qualité des données en provenance des différentes sources. La refonte de la Pipeline « 
Apprentissage des modèles de Machine Learning. Automatisation des scripts d’évaluation des modèles 
selon les critères définis par les unités Business L’automatisation de la phase d’apprentissage des 
modèles. L’implémentation de la technique « Stacked Ensemble ». La mise en place d’un modèle de 
détection d’anomalies « Isolation Forest ». L’intégration de la détection d’anomalie suivant la 
technique semi-supervised-learning. Déploiements des 3 micro-services à travers différentes images 
Docker. Restructuration du pipeline de l’apprentissage des modèles prédictifs. La réalisation d’un 
POC servant à prédire le volume des produits retournés. La mise en production du POC en question."

test = NLP(text = txt)

tokens = test.tokenize(txt) #réfléchir à enlever les guillemets

print(tokens)

y = test.rem_stopwords(tokens)

print(y)

stemmers = test.return_stem(y)

print(stemmers)


ner = test.return_NER(stemmers)

print(ner)