在这种情况下,最好的方法是,以dict或更好的选项为每个发言者存储口头文本?我希望将每个语音文本映射到每个发言者,就像尝试一样。但输出并不像我预期的那样。
def speaker_texts(cleanedList):
dictspeaker = {"Speaker": "", "Group": "", "Text": ""}
pattern_speaker = r"([A-Z]+[a-z]*)([\s]*)(\([A-Z]*\))"
for sent in cleanedList:
speaker = re.findall(pattern_speaker, sent)
for info in speaker:
dictspeaker.update({"Speaker":info[0], "Group":info[2], "Text": sent})
输出:
{'Speaker': 'Rische', 'Group': '(KPD)', 'Text': ', Antragsteller: Meine Damen und \nHerren! Anläßlich der Regierungserklärung und \n\n\x0c\n\n30 \n\n(Rische) \nauch in der heutigen Debatte zum Flüchtlings-\nproblem wurden viele Worte über eine sinnvolle, \nden sozialen Belangen entsprechende Verwendung \nöffentlicher Mittel gesprochen. Di e Regierung gab \nin ihrem Programm zu verstehen, daß sie eine ver-\nantwortungsbewußte Sozialpolitik durchzuführen \ngedenke. Sie hat die Flüchtlingshilfe, den Woh-\nnungsbau, die Verbe.'}
在文件中,扬声器多次出现。我想将口头文本分配给相应的发言者。也就是说,每当发言者出现时,在字典中更新它,以便添加新文本而不覆盖旧文本。
或者我应该为每个演讲者创建一个自己的词典?
答案 0 :(得分:4)
您可能希望使用namedtuple并创建扬声器对象。然后将它们附加到列表中。在这里,我写了一些代码,向您展示如何使用nametuple。
In [1]: from collections import namedtuple
In [2]: speaker = namedtuple('Speaker', 'speaker goroup text')
In [3]: speaker1 = speaker('Rische', 'KPD', "Antragsteller: Meine
Damen")
In [4]: speaker1
Out[4]: Speaker(speaker='Rische', goroup='KPD', text='Antragsteller:
Meine Damen')
In [5]: speaker1.text
Out[5]: 'Antragsteller: Meine Damen'
答案 1 :(得分:0)
在nametuple中,您只需定义您的字段名称(发言者,组,文本)。这些字段可以是字典。
git config --global --unset-all user.name