【发布时间】:2019-03-12 03:45:04
【问题描述】:
我正在尝试从文本文件中获取字数。那部分相对容易。我的困难是,该文件是一个成绩单,其中每个发言者可能会说不同数量的行,我只想获取发言者 1 的字数。幸运的是,每次新发言者开始时,我们都有他们的名字和冒号。示例如下:
演讲者 1:Lorem ipsum dolor sit amet,consectetur adipiscing elit。现行有效。 Nulla ac ipsum id est cursus venenatis eget nec velit。 Nulla sollicitudin sed nulla et aliquet。在 ex augue,tincidunt id lacus vel,feugiat rhoncus nisl。 Phasellus in lectus scelerisque,finibus sapien vel,ornare ex。 Proin faucibus eleifend volutpat。 Vivamus maximus risus a nulla vulputate gravida vitae consequat ante。 Duis malesuada blandit tortor, sed efficitur leo porta vel。在 quam mi, congue in auctor sed, elementum nec ex。 Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus。 Sed hendrerit elit ac justo rutrum sagittis。 演讲者 2:aliquam nibh 的 Sed。 Nunc laoreet orci risus, vitae ornare elit tempus eget。 演讲者 1:roin massa ante、condimentum ornare justo nec、vehicula gravida diam。 Ut nibh metus, aliquam sit amet consequat at, vulputate a magna。
我正在尝试仅统计发言人 1 的字数。如您所见,每个发言人可能只说 1 个句子,也可以说几个。这是我用来获取字数的代码。我只对超过 3 个字母的单词感兴趣。
import string
fhand = open('transcript.txt')
counts = dict()
for line in fhand:
line = line.translate(str.maketrans('', '', string.punctuation))
line = line.lower()
words = line.split()
for word in words:
if len(word) < 4: continue
else:
if word not in counts:
counts[word] = 1
else:
counts[word] += 1
# Sort the dictionary by value
lst = list()
for key, val in list(counts.items()):
lst.append((val, key))
lst.sort(reverse=True)
for key, val in lst[:100]
print(val,key)
【问题讨论】:
标签: python-3.x