【问题标题】:how to count average sentence length (in words) from a text file contains 100 sentences using python [closed]如何使用python从包含100个句子的文本文件中计算平均句子长度(以单词为单位)[关闭]
【发布时间】:2012-12-07 20:34:03
【问题描述】:

我有一个包含 100 个句子的文本文件。我想编写一个 python 脚本来计算包含 100 个句子的文本文件中的平均句子长度(以单词为单位)。 谢谢

【问题讨论】:

  • 你的代码是什么样的?
  • 我想要代码。我是 python 新手。无法通过网络找到解决方案。

标签: python python-2.7 nlp


【解决方案1】:
wordcounts = []
with open(filepath) as f:
    text = f.read()
    sentences = text.split('.')
    for sentence in sentences:
        words = sentence.split(' ')
        wordcounts.append(len(words))
average_wordcount = sum(wordcounts)/len(wordcounts)

【讨论】:

    【解决方案2】:

    这应该可以帮助您。但这是基本的东西,你至少应该自己尝试一下。

    此代码假定每个句子都在新行上。

    如果不是这种情况,您可以更正代码,或者在您的问题中反映这一点,这对此尚不清楚。

    def read_lines_from_file(file_name):
        with open(file_name, 'r') as f:
            for line in f:
                yield line.strip()
    
    def average_words(sentences):
        counts = []
        for sentence in sentences:
            counts.append(sentence.split())
        return float(sum(counts)/len(counts))
    
    print average_words(read_lines_from_file(file_name))
    

    【讨论】:

      【解决方案3】:

      天真的方式:

      sents = text.split('.')
      avg_len = sum(len(x.split()) for x in sents) / len(sents)
      

      严肃的方式:使用nltk根据目标语言规则对文本进行分词。

      【讨论】:

      • 注意整数除法!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      相关资源
      最近更新 更多