Python中的采访数据:计算由说话人分隔的某个共同事件

2024-05-13 12:03:46 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一位社会科学家提出的问题。我想我找到了第一个使用Python的完美用例(对我来说),但我还没有找到。我想分析数百份正式的采访记录,事实上,这些记录的基础是议会辩论的协议。也可以是随机采访。我想数一数某些词——每一方都会得到“欢呼声”,由各方来排序——但作为Py的新手,我正在努力找到定义条件的正确公式。简言之,我对以下研究问题感兴趣:谁在为谁喝彩有几个“如果”我希望得到照顾以产生期望的结果

原始数据很复杂,但排列有序

每次讨论都是由演讲者安排的,演讲者的正式介绍是:“发言到……X”。然后是演讲者的文本,还有分隔文本的空行。演讲者讲完后,下一个演讲者将用相同的短语介绍。在演讲过程中,某些政党的成员在数据bei(欢呼……政党名称)中表示为演讲者“欢呼”。这些条目可以超过1或2行。我要数这些“干杯”

以下是原始数据的示例(简化):

The floor goes to member of the parliament Muller by the
Left Party.

Bla bla
bla 
(Cheers Left Party, Green Party, Blue
Party )

Bla

(Cheers Nazi Party) 
Bye Bla

The floor goes to member of the parliament Tsing by the Green Party.

Bla bla
bla 
(Cheers Left Party, Green Party)

我如何告诉Python在某行(说话人)中的某个字符串出现后循环遍历后面的文本?另外,我如何计算一行中的同时出现次数,从而跳过空字符/不相关字符(计算“欢呼声”)?使用一个基本的单词计数代码,我可以计算出一个文件中所有的欢呼声,但这只是一个简单的开始

count = 0
fhand = open('3_parliament.txt') 
for line in fhand:
    line = line.rstrip()
    if not line.startswith('(Cheers '): continue
    words = line.split()
    count = count + 1
    print(words[1]) 

print("There were", count, "lines in the file with >(Cheers< as the first word")

我发现了定义了“段落”的其他示例代码,但由于空行和文本的复杂性质,这在这里不起作用。文本包装似乎产生了类似的问题。我还发现在一行(“干杯……X党”)中计算共同发生的事件很有挑战性。你有什么提示或提示吗

我通过Atom在Win10上使用最新的Python 3.8


Tags: the文本原始数据定义partycount记录line