【问题标题】:text content analyzer in pythonpython中的文本内容分析器
【发布时间】:2023-03-15 19:14:01
【问题描述】:

我在 python 中创建了一个文本内容分析器,用于分析来自文件的输入和输出

  1. 总字数
  2. 唯一字数
  3. 句子数

代码如下:

import re
import string
import os
import sys

def function(s):
    return re.sub("[%s]" % re.escape(string.punctuation), '', s.lower())

def main():
    words_list = []

    with open(sys.argv[1], "r") as f:
        for line in f:
            words_list.extend(line.split())

    print "Total word count:", len(words_list)

    new_words = map(function, words_list)

    print "Unique words:", len(set(new_words))

    nb_sentence = 0
    for word in words_list:
        if re.search(r'[.!?][' "'" '"]*', word):
            nb_sentence += 1

    print "Sentences:", nb_sentence

if __name__ == "__main__":
    main()

我现在正在尝试计算单词的平均句子长度,找到经常使用的短语(使用超过 3 次的 3 个或更多单词的短语),并按频率降序排列使用的单词列表。有人可以帮忙吗?

【问题讨论】:

    标签: python statistics data-science


    【解决方案1】:

    以下是一些可能有所帮助的方法:

    • 对于以单词为单位的平均句子长度,您可以拆分句点以获得句子数组,然后将该数组中的每个句子拆分为空格以获取每个句子中的单词数组。然后,您可以计算句子数组中每个单词数组的长度并平均这些长度。

    • 要按频率降序排列使用的单词列表,您可以拆分空格上的文本,遍历每个单词并将计数存储在字典中,其中键是单词,值是发生。然后,您可以遍历该字典中的键,创建单词和计数的元组,并对这些元组进行排序以找出最常见的单词。这是一个相关问题的解决方案,解决字符串中的常见字符:https://gist.github.com/geoff616/6df5320a1f720411a180

    • 对于经常使用的短语(3 个单词的短语使用超过 3 次),您可以进行与上述相同的计算,但每隔三个空格(使用正则表达式)拆分一次,而不是单独分析每个单词并过滤计数小于 3 的任何东西。计算 3 个or more 单词的常用短语比较棘手,但如果你解决了前面的所有问题,答案可能会变得更加明显。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      相关资源
      最近更新 更多