gpt4 book ai didi

python - 如何总结对话中每个人的字数?

转载 作者:行者123 更新时间:2023-11-28 20:52:09 25 4
gpt4 key购买 nike


我开始学习 Python,我正在尝试编写一个程序来导入一个文本文件,计算总字数,计算特定段落中的字数(由每个人说) participant, described by 'P1', 'P2' etc.), 从我的字数统计中排除这些词(即 'P1' 等),并单独打印段落。

感谢@James Hurford 我得到了这段代码:

words = None
with open('data.txt') as f:
words = f.read().split()
total_words = len(words)
print 'Total words:', total_words

in_para = False
para_type = None
paragraph = list()
for word in words:
if ('P1' in word or
'P2' in word or
'P3' in word ):
if in_para == False:
in_para = True
para_type = word
else:
print 'Words in paragraph', para_type, ':', len(paragraph)
print ' '.join(paragraph)
del paragraph[:]
para_type = word
else:
paragraph.append(word)
else:
if in_para == True:
print 'Words in last paragraph', para_type, ':', len(paragraph)
print ' '.join(paragraph)
else:
print 'No words'

我的文本文件如下所示:

P1: Bla bla bla.

P2: Bla bla bla bla.

P1: Bla bla.

P3: Bla.

我需要做的下一部分是为每个参与者总结单词。我只能打印它们,但我不知道如何退回/重新使用它们。

除了总结每个参与者所说的所有单词外,我还需要一个新变量,其中包含每个参与者的字数统计,我可以稍后对其进行操作,例如

P1all = sum of words in paragraph

有没有办法将“you're”或“it's”等算作两个词?

有什么解决办法吗?

最佳答案

I would need a new variable with word count for each participant that I could manipulate later on

不,你需要一个 Counter (Python 2.7+,否则使用 defaultdict(int))将人员映射到字数。

from collections import Counter
#from collections import defaultdict

words_per_person = Counter()
#words_per_person = defaultdict(int)

for ln in inputfile:
person, text = ln.split(':', 1)
words_per_person[person] += len(text.split())

现在 words_per_person['P1'] 包含 P1 的单词数,假设 text.split() 是一个足够好的分词器为了你的目的。 (语言学家对的定义意见不一,所以你总是会得到一个近似值。)

关于python - 如何总结对话中每个人的字数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7429845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com