首页 > 解决方案 > 在python中计算每个句子的单词

问题描述

我在计算每个句子的单词时遇到问题。我只从输入的句子中得到所有单词的计数。

sen = input("Enter atleast 5 sentences.\nRemember to end the sentence with period\nSentence: ")
word_list = sen.split()
num_word = len(word_list)
print("Total words of the sentence: ", num_word)

我理想的输出是显示每个句子的计数单词和句子的平均单词使用量。

例如:

句子:你好世界!我喜欢编程。

我想显示每个句子的计数,例如:2 + 3

平均值:5 / 2 = 2,因为不接受小数。

我不希望它直接进入计算,因为我想知道每个句子使用了多少个单词。

标签: python

解决方案


首先,按句子终止符拆分句子。使用 re.split 和一个正则表达式来分割多个字符。同时删除所有长度为零的句子。:

import re
sentences = re.split("\.|\!|\?|\n", sen)
sentences = [i for i in sentences if len(i) > 0]

现在将每个句子拆分成单词并输出结果:

words = [sentence.split() for sentence in sentences]
wpersen = [len(i) for i in words]
print(f"Length of sentences: {wpersen}\nMean: {sum(wpersen) // len(wpersen)}")

完成代码:

import re
sen = input("Enter atleast 5 sentences.\nRemember to end the sentence with period\nSentence: ")
sentences = re.split("\.|\!|\?|\n", sen)
sentences = [i for i in sentences if len(i) > 0]
words = [sentence.split() for sentence in sentences]
wpersen = [len(i) for i in words]
print(f"Length of sentences: {wpersen}\nMean: {sum(wpersen) // len(wpersen)}")

推荐阅读