Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError需要帮助:未找到子字符串_Python_Nltk_Valueerror - Fatal编程技术网

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

Python ValueError需要帮助:未找到子字符串,python,nltk,valueerror,Python,Nltk,Valueerror,我想用以下句子来表达: (N(Hace calor.)-(S(De todas formas,no salgo a casa.)) (N(阿德马斯,va a venir Peter.)-(s(罪恶禁运,不允许任何犯罪行为) 但是程序只能给出第一句话,并给出一个错误作为ValueError:substring未找到第二句话。有人能帮忙吗?谢谢 这是我的密码: from nltk import tokenize sent = 'Hace calor. De todas formas, no salg

我想用以下句子来表达:

(N(Hace calor.)-(S(De todas formas,no salgo a casa.))

(N(阿德马斯,va a venir Peter.)-(s(罪恶禁运,不允许任何犯罪行为)

但是程序只能给出第一句话,并给出一个错误作为ValueError:substring未找到第二句话。有人能帮忙吗?谢谢

这是我的密码:

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)

您正在更改已发送的
。我建议创建一个新变量,它将解决这个问题

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)   
输出:

['(N(Hace calor.)-对立面-(S(detodas formas,no salgo a casa.)),'(N(AdemáS,va a venir Peter.)-对立面-(S(Sin禁运,no lo Séa quéhora llegaráexecremente.))]


new
变量将以列表的形式显示您想要的输出。

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

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)   
输出:

['(N(Hace calor.)-对立面-(S(detodas formas,no salgo a casa.)),'(N(AdemáS,va a venir Peter.)-对立面-(S(Sin禁运,no lo Séa quéhora llegaráexecremente.))]


new
变量将以列表的形式获得您想要的输出。

sent\u tokenize()
返回一个列表。但随后您将其更改回循环赋值中的字符串。因此在下一次迭代中,
sent.index(i)
不起作用,因为
sent
是一个字符串而不是一个句子列表。也许你只需要使用不同的变量。好的,谢谢!我认为这是一个好主意。
sent\u tokenize()
返回一个列表。但是你可以在循环中的赋值中将它改回字符串。所以在下一次迭代中,
sent.index(I)
不起作用,因为
发送的
是一个字符串,而不是一个句子列表。也许你只需要使用不同的变量。好的,谢谢!我认为这是个好主意。我认为这是一个好主意,我想得到什么。非常感谢!很好。嗨,如果这个答案解决了你的问题,请单击复选框将其标记为已接受k在其一侧?谢谢。我认为这是我想要得到的一个好主意。非常感谢!很好。嗨,如果这个答案解决了你的问题,你能通过单击其一侧的复选标记将其标记为已接受吗?谢谢。