我希望计算每个句子的单词数,计算每个句子的平均单词数,并将这些信息放入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")
您可能对字符串的split()函数感兴趣。似乎你在编辑你的文本,以确保所有句子以句点结尾,每个句点以一个句子结尾。在
因此
会给你所有句子的列表。一旦你有了清单,每句话
^{pr2}$会给你一个句子中的单词表。在
这够开始了吗?在
你可以试试下面的代码。在
然而,对于真正的自然语言处理,我可能会推荐一个更健壮的解决方案,比如NLTK。执行的文本操作(替换“?”还有“!”,删除“Dr.”、“Mr.”和“Mrs.”后的逗号可能不足以百分之百地确定逗号始终是一个句子分隔符(并且在您的文本中没有其他句子分隔符,即使它恰好适用于Pride and Premission)
要将字符串拆分为某个字符上的字符串列表,请执行以下操作:
然后我们可以把这些句子分成一系列的字符串(单词)
^{pr2}$然后我们得到每个句子的单词数
然后我们可以使用
statistics.mean
来计算平均值:要使用
statistics
,必须将import statistics
放在文件的顶部。如果你不认识我重新分配pnp
的方式,请查找列表理解。在相关问题 更多 >
编程相关推荐