ValueError需要帮助:找不到子字符串

问题描述 投票:0回答:1

我想使句子如下:

(N(Hace卡路里)-(S(De todas formas,no salgo a Casa))))>>

(N(Además,va venir Peter。)-(S(禁运,无任何法律效力)))] >>

但是该程序只能给我第一句话,并给出一个错误,如ValueError:在第二句话中找不到子字符串。有人可以帮忙吗?谢谢!

这是我的代码:

from nltk import tokenize
sent = 'Hace calor. De todas formas, no salgo a casa. Además, va a venir Peter. Sin embargo, no lo sé a qué hora llegará exactamente.'
Ant = ['De todas formas', 'Sin embargo']
sent = tokenize.sent_tokenize(sent)
for i in sent:
    for DMAnt in Ant:
        if DMAnt in i:
            sent = '(N(' + str(sent[sent.index(i)-1]) + ')-Antithesis-' +'(S(' + str(sent[sent.index(i)]) + '))'
    print(sent)

[我想作以下句子:(N(Hace calor。)-(S(De todas formas,no salgo a casa。)))(N(Además,va an venir Peter。)-(S(禁运罪,没有任何法律效力。)))但是...

python nltk valueerror
1个回答
0
投票

您正在更改sent。我建议创建一个新变量,它将解决问题。

import nltk
nltk.download('punkt')
from nltk import tokenize
sent = 'Hace calor. De todas formas, no salgo a casa. Además, va a venir Peter. Sin embargo, no lo sé a qué hora llegará exactamente.'
Ant = ['De todas formas', 'Sin embargo']
sent = tokenize.sent_tokenize(sent)
new=[]
for i in sent:
    for DMAnt in Ant:
        if DMAnt in i:
            new.append('(N(' + str(sent[sent.index(i)-1]) + ')-Antithesis-' +'(S(' + str(sent[sent.index(i)]) + '))')

print(new)   
© www.soinside.com 2019 - 2024. All rights reserved.