首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的文本内容分析器

python中的文本内容分析器
EN

Stack Overflow用户
提问于 2015-11-28 20:24:05
回答 1查看 1.8K关注 0票数 0

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

  1. 总字数
  2. 独特词语的计数
  3. 句数

以下是代码:

代码语言:javascript
复制
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()

我现在试着计算单词的平均句子长度,找出经常使用的短语(三个或三个以上的单词使用超过三次),并按频率下降的顺序列出所用单词的列表。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-28 22:09:30

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

  • 对于单词的平均句子长度,您可以在句点上进行拆分以得到一系列的句子,然后将该数组中的每个句子拆分到空格上,以得到每个句子中的一组单词。然后,您可以计算句子数组中每个单词数组的长度,并对这些长度进行平均值。
  • 若要按下降频率顺序列出所使用的单词,可以在空格上拆分文本,迭代每个单词,并将计数存储在字典中,其中键是一个单词,值是出现次数的计数。然后,您可以遍历字典中的键,创建单词和计数的元组,并对这些元组进行排序,找出最常见的单词。下面是一个相关问题的解决方案,解决字符串中的常见字符:https://gist.github.com/geoff616/6df5320a1f720411a180
  • 对于经常使用的短语(3个单词的短语使用3次以上),您可以进行与上面相同的计算,但在第三个空格(用正则表达式)进行拆分,而不是单独分析每个单词,并过滤掉计数小于3的任何单词。计算3个or more单词的常见短语比较困难,但如果您解决了前面的所有问题,答案可能会变得更加明显。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33976069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档