Python创建每个句子的单词列表并计算平均值和CSV-Fi中的位置

2024-05-16 12:12:34 发布

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

我希望计算每个句子的单词数,计算每个句子的平均单词数,并将这些信息放入CSV文件中。以下是我目前所掌握的情况。我可能只需要知道如何计算句点前的字数。我也许能从那里找到答案。在

#Read the data in the text file as a string
with open("PrideAndPrejudice.txt") as pride_file:
    pnp = pride_file.read()

#Change '!' and '?' to '.'
for ch in ['!','?']:
    if ch in pnp:
        pnp = pnp.replace(ch,".")

#Remove period after Dr., Mr., Mrs. (choosing not to include etc. as that often ends a sentence although in can also be in the middle)
pnp = pnp.replace("Dr.","Dr")
pnp = pnp.replace("Mr.","Mr")
pnp = pnp.replace("Mrs.","Mrs")

Tags: thetoin信息asch单词replace
3条回答

您可能对字符串的split()函数感兴趣。似乎你在编辑你的文本,以确保所有句子以句点结尾,每个句点以一个句子结尾。在

因此

pnp.split('.')

会给你所有句子的列表。一旦你有了清单,每句话

^{pr2}$

会给你一个句子中的单词表。在

这够开始了吗?在

你可以试试下面的代码。在

numbers_per_sentence =  [len(element) for element in (element.split() for element in pnp.split("."))]
mean = sum(numbers_per_sentence)/len(numbers_per_sentence)

然而,对于真正的自然语言处理,我可能会推荐一个更健壮的解决方案,比如NLTK。执行的文本操作(替换“?”还有“!”,删除“Dr.”、“Mr.”和“Mrs.”后的逗号可能不足以百分之百地确定逗号始终是一个句子分隔符(并且在您的文本中没有其他句子分隔符,即使它恰好适用于Pride and Premission)

要将字符串拆分为某个字符上的字符串列表,请执行以下操作:

pnp = pnp.split('.')

然后我们可以把这些句子分成一系列的字符串(单词)

^{pr2}$

然后我们得到每个句子的单词数

pnp = [len(sentence) for sentence in pnp]

然后我们可以使用statistics.mean来计算平均值:

statistics.mean(pnp)

要使用statistics,必须将import statistics放在文件的顶部。如果你不认识我重新分配pnp的方式,请查找列表理解。在

相关问题 更多 >