这是我的第一篇文章,所以如果我做错了什么,我很抱歉。也就是说,我搜索了这个问题,发现由于 OP 没有提供足够的信息而从未回答过的类似问题。这也是作业,所以我只是在寻找提示。我真的很想自己得到这个。
我需要读入一个辩论文件 (.txt),然后提取并存储一位候选人说要放入词云的所有行。文件格式应该会有所帮助,但我对如何做到这一点一无所知。提示是每次新人说话时,他们的名字后跟冒号是第一行的第一个单词。但是,候选人的数据可以跨越多行。我应该分别存储每个人的台词。这是该文件的示例:
莱勒:本次辩论和接下来的三场辩论——两场总统辩论,一名副总统辩论赛——由总统辩论委员会赞助。今晚的 90 分钟将讨论国内问题,并将遵循委员会设计的格式。将有六个大约 15 分钟的片段,第一个问题有两分钟的答案,然后对每个片段的其余部分进行公开讨论。
先生们,欢迎你们俩。让我们开始经济,第一部分,让我们从工作开始。你们两人在如何创造新工作方面的主要区别是什么?
LEHRER:你有两分钟的时间。你们每个人都有两分钟的时间开始。抛硬币决定,总统先生,你先走。
奥巴马:嗯,非常感谢吉姆,给我这个机会。我要感谢罗姆尼州长和丹佛大学的热情款待。
今晚我想说的有很多,但最重要的是,20 年前我成为了地球上最幸运的人,因为米歇尔奥巴马同意嫁给我。
到目前为止,这就是我所拥有的功能:
def getCandidate(myFile):
file = open(myFile, "r")
obama = []
romney = []
lehrer = []
file = file.readlines()
我只是不确定如何遍历数据,以便正确区分每个人的单词。我创建了一个虚拟文件来创建词云,并且我能够做到这一点,所以我想知道的是如何提取我需要的信息。
谢谢!如果我可以提供更多信息,请告诉我。这是一门 Python 入门课程。
编辑:从响应中添加的新代码。这在一定程度上有效,但只抓住了每个候选人回答的第一行,而不是他们的全部回答。我需要编写代码继续存储该候选下的每一行,直到新名称位于行的开头。
def getCandidate(myFile, candidate):
file = open(myFile, "r")
OBAMA = []
ROMNEY = []
LEHRER = []
file = file.readlines()
for line in file:
if line.startswith("OBAMA:"):
OBAMA.append(line)
if line.startswith("ROMNEY:"):
ROMNEY.append(line)
if line.startswith("LEHRER:"):
LEHRER.append(line)
if candidate == "OBAMA":
return OBAMA
if candidate == "ROMNEY":
return ROMNEY
编辑:我现在有一个新问题。如何概括文件,以便我可以打开两个人和主持人之间的任何辩论文件?我在这个问题上遇到了很多麻烦。
提示我查看行首并查看每行的最后一个单词是否以“:”结尾,但我仍然不确定如何执行此操作。我尝试在空格上分割每一行,然后查看该行中的第一个项目,但这就是我所得到的。