精华内容
下载资源
问答
  • Given a paragraphand a list of banned words, return the most frequent word that is not in the list of banned words. It is guaranteed there is at least one word that isn't banned, and that the...

    [抄题]:

    Given a paragraph and a list of banned words, return the most frequent word that is not in the list of banned words.  It is guaranteed there is at least one word that isn't banned, and that the answer is unique.

    Words in the list of banned words are given in lowercase, and free of punctuation.  Words in the paragraph are not case sensitive.  The answer is in lowercase.

    Example:
    Input: 
    paragraph = "Bob hit a ball, the hit BALL flew far after it was hit."
    banned = ["hit"]
    Output: "ball"
    Explanation: 
    "hit" occurs 3 times, but it is a banned word.
    "ball" occurs twice (and no other word does), so it is the most frequent non-banned word in the paragraph. 
    Note that words in the paragraph are not case sensitive,
    that punctuation is ignored (even if adjacent to words, such as "ball,"), 
    and that "hit" isn't the answer even though it occurs more because it is banned.

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    [一句话思路]:

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    1. 斜杠不是正斜杠

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    去标点、去空格都用正则表达式

    [复杂度]:Time complexity: O(n) Space complexity: O(n)

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    1. Arrays.asList()返回的是List,而且是一个定长的List。把string数组转成普通数组,才能存到hashset中。
    public static void main(String[] args){
      2         int[] a1 = new int[]{1,2,3};
      3         String[] a2  = new String[]{"a","b","c"};
      4
      5         System.out.println(Arrays.asList(a1));
      6         System.out.println(Arrays.asList(a2));
      7     }
      打印结果如下:
      [[I@dc8569]
      [a, b, c]

     删除标点、划分空格:斜杠

    String[] words = p.replaceAll("\\pP" , "").toLowerCase().split("\\s+");

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

     [代码风格] :

    class Solution {
        public String mostCommonWord(String paragraph, String[] banned) {
            //ini
            Set<String> set = new HashSet<>(Arrays.asList(banned));
            Map<String, Integer> map = new HashMap<>();
            String res = "";
            int max = Integer.MIN_VALUE;
            
            //store in HM
            String[] words = paragraph.replaceAll("\\pP", "").toLowerCase().split("\\s+");
            for (String w : words) {
                if (!set.contains(w)) {
                    map.put(w, map.getOrDefault(w, 0) + 1);
                    if (map.get(w) > max) {
                        res = w;
                        max = map.get(w);
                    }
                } 
            }
            
            //return
            return res;
        }
    }
    View Code

     

    转载于:https://www.cnblogs.com/immiao0319/p/8974022.html

    展开全文
  • counter[word] += 1 return counter.most_common(top_limit) if __name__ == ‘__main__’: counter = WordCounter() result = counter.count_from_file(r’bj.txt’, top_limit=20) #文件名bj.txt,选取前20高频词...

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

    import jieba

    import jieba.analyse

    import codecs

    import re

    from collections import Counter

    class WordCounter(object):

    def count_from_file(self, file, top_limit=0):

    with codecs.open(file, ‘r’, ‘utf-8′) as f:

    content = f.read()

    content = re.sub(r’\s+’, r’ ‘, content)

    content = re.sub(r’\.+’, r’ ‘, content)

    return self.count_from_str(content, top_limit=top_limit)

    def count_from_str(self, content, top_limit=0):

    if top_limit <= 0:

    top_limit = 100

    tags = jieba.analyse.extract_tags(content, topK=100)

    words = jieba.cut(content,cut_all=True)    #自行设置jieba的模式

    counter = Counter()

    for word in words:

    if word in tags:

    counter[word] += 1

    return counter.most_common(top_limit)

    if __name__ == ‘__main__’:

    counter = WordCounter()

    result = counter.count_from_file(r’bj.txt’, top_limit=20)    #文件名bj.txt,选取前20高频词

    for k, v in result:

    print (k, v)

    展开全文
  • 统计高频词

    千次阅读 2018-06-27 20:37:41
    #返回高频词 def word(file): with open(file) as file: data = file.read() #一次性读取全部的内容 contents = re.findall('\w+',data) #匹配所有的字符 count = {} for content in contents: ...
    #返回高频词
    def word(file):
        with open(file) as file:
            data = file.read()  #一次性读取全部的内容
            contents = re.findall('\w+',data) #匹配所有的字符
            count = {}
            for content in contents:
                count[content] = count.get(content,0) + 1  #如果 count里面没有content则会设置成0 然后加1
            print(count)
            sortedcount = sorted(count.items(),key = operator.itemgetter(1)) #排序 1 表示按照 values排
            print(sortedcount[-1][0])

    展开全文
  • 使用Python 统计高频字数的方法

    千次阅读 2021-02-04 09:44:54
    使用Python 统计高频字数的方法发布时间:2020-09-17 00:52:12来源:脚本之家阅读:112作者:Silent_Summer问题(来自Udacity机器学习工程师纳米学位预览课程)用 Python 实现函数 count_words(),该函数输入字符串 s ...

    使用Python 统计高频字数的方法

    发布时间:2020-09-17 00:52:12

    来源:脚本之家

    阅读:112

    作者:Silent_Summer

    问题

    (来自Udacity机器学习工程师纳米学位预览课程)

    用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词。返回值是一个元组列表,包含出现次数最高的 n 个单词及其次数,即 [(, ), (, ), ... ],按出现次数降序排列。

    可以假设所有输入都是小写形式,并且不含标点符号或其他字符(只包含字母和单个空格)。如果出现次数相同,则按字母顺序排列。

    例如:

    print count_words("betty bought a bit of butter but the butter was bitter",3)

    输出

    [('butter', 2), ('a', 1), ('betty', 1)]

    解法

    """Count words."""

    def count_words(s, n):

    """Return the n most frequently occuring words in s."""

    w = {}

    sp = s.split()

    # TODO: Count the number of occurences of each word in s

    for i in sp:

    if i not in w:

    w[i] = 1

    else:

    w[i] += 1

    # TODO: Sort the occurences in descending order (alphabetically in case of ties)

    top = sorted(w.items(), key=lambda item:(-item[1], item[0]))

    top_n = top[:n]

    # TODO: Return the top n most frequent words.

    return top_n

    def test_run():

    """Test count_words() with some inputs."""

    print count_words("cat bat mat cat bat cat", 3)

    print count_words("betty bought a bit of butter but the butter was bitter", 3)

    if __name__ == '__main__':

    test_run()

    小结

    主要两个小技巧:

    用split()将输入字符串按空格分开;

    用sorted()函数对字典 先按值,再按键 进行排序,尤其是item:(-item[1], item[0])) 代表先对item的第二个元素 降序 排列(item 之前用了-),然后对第一个元素 升序 排列。多个元素的元组亦然。

    以上这篇使用Python 统计高频字数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。

    展开全文
  • Python高频词统计

    千次阅读 2019-06-26 14:08:33
    # -*- coding: utf-8 -*- import jieba txt = open('gaopin.txt','r').read() words = jieba.lcut(txt) print(words) counts = {} for word in words: if len(word) == 1: continue else: ...
  • Python快速统计文件中高频词

    千次阅读 多人点赞 2020-10-29 13:38:09
    b = a.read() # 对文件进行读操作 words = jieba.lcut(b) # words是直接生成一个装有的列表,即list count = {} # 定义一个字典 for word in words: # 枚举在文章中出现的词汇 if len(word) 排除字长小于2的 ...
  • 1月9日被誉为中国最牛的产品经理张小龙做了微信的年度演讲[1]...我觉得特别好玩的是,有很多大家都在说的,耳朵里听出老茧的,他一个字都没提。为什么呢?也许他的词典里根本没有这样的,也许有但是他觉得根本...
  • 如何统计文章中的高频词

    千次阅读 2020-01-11 23:30:21
    该任务的重点就是提取用户留言的高频词并且过滤掉停用词。 在本场 Chat 中,会讲到如下内容: 数据收集:获取用户的留言数据 文本分词:读取用户留言内容,使用 jieba 进行文本分词,根据具体任务,添加自定义词库...
  • word counts[rword] = counts.get(rword, 0) + 1 #去除单词长度在7个以下的,去除之前定义的,统计其他单词的数量 items = list(counts.items()) #将字典转换为列表,以便操作 items.sort(key=lambda x:x[1], ...
  • 一个程序实现英语四六级高频单词统计写在前面过程描述单词类的创建二级目录 写在前面 英语四六级考试快到了,相信很多同学只想背一些高频单词,如何知道哪些是高频单词呢,大多数同学都会在网上搜索一通,但自己...
  • python之jieba模块高频词统计

    千次阅读 2018-10-30 22:37:31
    import jieba txt = open('gaopin.txt','r').read() words = jieba.lcut(txt) counts = {} for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word,0) + 1...
  • import jieba ls="中国是一个伟大的国家,是一个好的...counts={} # 定义统计字典 words=jieba.lcut(ls) print('分好的词组为:',words) for word in words: counts[word]=counts.get(word,0)+1 print...
  • 统计哈姆雷特文本中高频词的个数

    千次阅读 2018-11-11 20:51:35
    统计哈姆雷特文本中高频词的个数 三国演义人物出场统计 开源代码 讲解视频 kou@ubuntu:~/python$ cat ClaHamlet.py #!/usr/bin/env python # coding=utf-8 #e10.1CalHamlet.py def getText(): txt = open("...
  • 高频词提取

    2020-03-03 14:49:20
    高频词一般指的是在文章中出现频率较高的且有意义的一些词语,一定程度上代表了文档的焦点所在。所以也可以将其当做关键词。 本文的分词工具使用了jieba分词。 首先,引入要用的包并且读取待处理的文档数据: import...
  • 用 Python 统计高频字数

    千次阅读 2017-04-30 01:46:42
    用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词。返回值是一个元组列表,包含出现次数最高的 n 个单词及其次数, 按出现次数降序排列。
  • 历年英语四级高频单词统计

    千次阅读 2019-06-01 17:13:09
    下载运行完就可以得到最近几年四级阅读理解高频单词。也可以自己收集其他数据进行统计 github:https://github.com/jiaxingqi/pythonCode/tree/master/练习/四级高频词 import os import re base_path = './data/' ...
  • 高频词一般是指文档中出现频率较高且并非无用的词语,其一定程度上代表了文档的焦点所在。针对单篇文档,可以作为一种关键词来看。对于如新闻这样的多篇文档,可以将其作为热词,发现舆论的焦点。其中高频词提取其实...
  • 2.获得每个英文单词的词频,通过字典将英文单词及其词频配对 3.将英文单词按照词频由大到小排序 4.创建并写入docx文档 首先打开PDF文件用到了pdfplumber第三方库,具体应用如此下: with pdfplumber.open(pdf_...
  • 作为字典(key-value)的经典应用题目,单词统计几乎出现在每一种语言键值对学习后的必练题目。 主要需求: 写一个函数wordcount统计一篇文章的每个单词出现的次数(词频统计)。统计完成后,对该统计单词频次进行排序...
  • 分享给大家供大家参考,具体如下:题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的。其实就是统计一篇文章出现最多的单词,...
  • 现代软件工程课的第一次个人作业博主做的相当差劲,让我清楚地意识到自己与他人的差距。 通过这篇博客博主将展示自己是如何走上事倍功半的歧路,认真分析错误原因,...1.统计文件的字符数(只需要统计Ascii码,汉字...
  • 利用word分词来对文本进行词频统计

    千次阅读 2017-12-30 00:26:00
    利用word分词来对文本进行词频统计 博客分类: 算法 分词器 word分词 中的  org.apdplat.word.WordFrequencyStatistics  类提供了词频统计的功能 命令行脚本的调用方法如下: ? ...
  • 本文实例讲述了Python统计纯文本文件中英文单词出现个数的方法。分享给大家供大家参考,具体如下: 第一版: 效率低 # -*- coding:utf-8 -*- #!python3 path = 'test.txt' with open(path,encoding='utf-8',newline=...
  • 1、使用jieba分词,取出不重要的高频词('股份','有限','公司'等),简化待查公司名,防止影响相似度。 2、使用FuzzyWuzzy计算待处理公司与标准公司名的相似度,取出最相似的(基于编辑距离Levenshtein Distance) ...
  • 输出每一章节的高频词
  • 读入所有文档并分词,统计词频,找到高频词,确定特征集,为每一条评论生成向量表示,计算一下不同评论之间的距离(自定义,如欧氏或余弦),能不能找到所有评论的“重心”或者所有评论中的代表性评论并输出原文?...
  • g = WordCloud() g.add(series_name="热点分析", data_pair=tags, word_size_range=[6, 66]) g.set_global_opts( title_opts=opts.TitleOpts( title="高频词条", title_textstyle_opts=opts.TextStyleOpts(font_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,205
精华内容 1,682
关键字:

word统计高频词