Je souhaite supprimer les mots marqués avec les balises de partie de discours spécifiques VBD
et VBN
de mon fichier CSV. Mais, je reçois l'erreur « IndexError: liste des index hors de portée » après avoir entré le code suivant:Comment puis-je supprimer tous les tags POS à l'exception de 'VBD' et 'VBN' de mon fichier CSV?
for word in POS_tag_text_clean:
if word[1] !='VBD' and word[1] !='VBN':
words.append(word[0])
Mon fichier CSV a 10 avis de 10 personnes et le nom de la ligne est Comment
.
Voici mon code complet:
df_Comment = pd.read_csv("myfile.csv")
def clean(text):
stop = set(stopwords.words('english'))
exclude = set(string.punctuation)
lemma = WordNetLemmatizer()
tagged = nltk.pos_tag(text)
text = text.rstrip()
text = re.sub(r'[^a-zA-Z]', ' ', text)
stop_free = " ".join([i for i in text.lower().split() if((i not in stop) and (not i.isdigit()))])
punc_free = ''.join(ch for ch in stop_free if ch not in exclude)
normalized = " ".join(lemma.lemmatize(word) for word in punc_free.split())
return normalized
text_clean = []
for text in df)Comment['Comment']:
text_clean.append(clean(text).split())
print(text_clean)
POS_tag_text_clean = [nltk.pos_tag(t) for t in text_clean]
print(POS_tag_text_clean)
words=[]
for word in POS_tag_text_clean:
if word[1] !='VBD' and word[1] !='VBN':
words.append(word[0])
Comment puis-je corriger l'erreur?
Dans le titre, le 'NN' et 'JJ' devrait être remplacé par 'VBD' et 'VBN'. Pardon. – bluesun
Veuillez ajouter où se trouve l'erreur. –
L'erreur ('IndexError: index de la liste hors de portée) se produit après avoir entré le dernier code ci-dessus; pour mot dans POS_tag_text_clean: si mot [1]! = 'VBD' et mot [1]! = 'VBN': mots.append (mot [0]) – bluesun