gpt4 book ai didi

python - 如何从文本文件计算 python 2.7 中的平均单词和句子长度

转载 作者:太空宇宙 更新时间:2023-11-03 17:56:58 25 4
gpt4 key购买 nike

过去两周我一直在解决这个问题,想知道你能帮忙吗。

我正在尝试计算文本文件的平均单词长度和句子长度。我似乎无法理解它。我刚刚开始使用随后在主文件中调用的函数。

我的主文件看起来像这样

import Consonants
import Vowels
import Sentences
import Questions
import Words

""" Vowels """


text = Vowels.fileToString("test.txt")
x = Vowels.countVowels(text)

print str(x) + " Vowels"

""" Consonats """

text = Consonants.fileToString("test.txt")
x = Consonants.countConsonants(text)


print str(x) + " Consonants"

""" Sentences """


text = Sentences.fileToString("test.txt")
x = Sentences.countSentences(text)
print str(x) + " Sentences"


""" Questions """

text = Questions.fileToString("test.txt")
x = Questions.countQuestions(text)

print str(x) + " Questions"

""" Words """
text = Words.fileToString("test.txt")
x = Words.countWords(text)

print str(x) + " Words"

我的函数文件之一如下所示:

def fileToString(filename):
myFile = open(filename, "r")
myText = ""
for ch in myFile:
myText = myText + ch
return myText

def countWords(text):
vcount = 0
spaces = [' ']
for letter in text:
if (letter in spaces):
vcount = vcount + 1
return vcount

我想知道如何将字长计算为导入的函数?我尝试在这里使用其他一些线程,但它们对我来说不能正确工作。

最佳答案

我正在尝试为您提供一个算法,

  • 读取文件,创建 for使用 enumerate() 循环, split()并检查它们如何以 endswith() 结尾。喜欢;

for ind,word in enumerate(readlines.split()):
if word.endswith("?")
.....
if word.endswith("!")

然后将它们放入字典中,使用ind (索引)值为 while循环;

obj = "Hey there! how are you? I hope you are ok."
dict1 = {}
for ind,word in enumerate(obj.split()):
dict1[ind]=word

x = 0
while x<len(dict1):
if "?" in dict1[x]:
print (list(dict1.values())[:x+1])
x += 1

输出;

>>> 
['Hey', 'there!', 'how', 'are', 'you?']
>>>

你看,我实际上把单词删减到 ? 。所以我现在列表中有一个句子(您可以将其更改为 ! )。我可以达到每个元素的长度,其余的都是简单的数学。您将找到每个元素长度的总和,然后将其除以该列表的长度。从理论上讲,它会给出平均值。

请记住,这是算法。您确实必须更改此代码以适应您的数据,关键点是 enumerate() , endswith()dict

关于python - 如何从文本文件计算 python 2.7 中的平均单词和句子长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28333732/

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