题目

难度:★★☆☆☆

类型:字符串

给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。

禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。

说明

1 <= 段落长度 <= 1000.

1 <= 禁用单词个数 <= 100.

1 <= 禁用单词长度 <= 10.

答案是唯一的, 且都是小写字母 (即使在 paragraph 里是大写的,即使是一些特定的名词,答案都是小写的。)

paragraph 只包含字母、空格和下列标点符号!?',;.

不存在没有连字符或者带有连字符的单词。

单词里只包含字母,不会出现省略号或者其他标点符号。

示例

输入:

paragraph = "Bob hit a ball, the hit BALL flew far after it was hit."

banned = ["hit"]

输出: "ball"

解释:

"hit" 出现了3次,但它是一个禁用的单词。

"ball" 出现了2次 (同时没有其他单词出现2次),所以它是段落里出现次数最多的,且不在禁用列表中的单词。

注意,所有这些单词在段落里不区分大小写,标点符号需要忽略(即使是紧挨着单词也忽略, 比如 "ball,"),

"hit"不是最终的答案,虽然它出现次数更多,但它在禁用单词列表中。

解答

这是自然语言处理(NLP)领域非常常见的基础问题,统计词频并去除停用词。我们使用re格式化与Counter计数器解决这个问题。

首先,我们将输入本文小写:paragraph.lower();

对于题目中所给出的标点符号(叹号“!“,问号“?”,单引号“‘”,逗号“,”,句号“.”,分号“;”以及空格“ ”),我们需要把它们删除,并且根据这些标点符号来划分单词,这里,我们使用re模块的split方法,它与str的split方法不同的是,可以同时处理多种不同的标点符号:re.split(r"[!?',;. ]", paragraph.lower()),得到的是一个划分好的单词列表,列表中的每个单词都是小写形式,并且不含多余的标点符号。

使用Counter对单词列表进行计数,计数完成后,需要删除空字符串“”的记录和停用词的记录;

对于清理后的单词计数器,我们找出出现次数最多的单词。这里我们使用max函数,平常我们直接取列表中的最大值,但是这里我们使用字典,并以字典的值作为key关键字,key关键字的作用是,对每个testlist元素先使用key指定的function来处理,然后再比较、返回预期的元素。

import re

from collections import Counter

class Solution:

def mostCommonWord(self, paragraph, banned):

p = re.split(r"[!?',;. ]", paragraph.lower())

d = Counter(p)

del d['']

for i in banned:

del d[i]

return max(d, key=lambda x: d[x])

如有疑问或建议,欢迎评论区留言~

python中常见单词意思_819. 最常见的单词(Python)相关推荐

  1. python中ifelifelse用在什么结构_详解Python if-elif-else知识点

    有的时候,一个 if - else - 还不够用.比如,根据年龄的划分:条件1:18岁或以上:adult 条件2:6岁或以上:teenager 条件3:6岁以下:kid Python if-elif- ...

  2. python字符串能减吗_在python中减去两个字符串(Subtract two strings in python)

    在python中减去两个字符串(Subtract two strings in python) 我应该计算两个不同列表的元素之间的差异. 这是我的代码: import operator a = ['5 ...

  3. python中superclass是什么_深度解析并实现python中的super(转载,好文)

    大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...

  4. python中的常量可以修改吗_深入理解Python变量与常量

    变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.常量是一块只读的内存区域,常量一旦被初始化就不能被 ...

  5. python中for无限循环_关于循环:在Python中从1循环到无穷大

    在C语言中,我会这样做: 1 2 3 4int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Python中实现类似的功能? ...

  6. 如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于Python解析器 而Python解析器所干的事情,就是: Python解析器,根据当前的所用的字符串编码类型 此字符串编码类型,是你自己所设置的 不 ...

  7. 【Python零基础入门篇 · 7】:Python中的注释、字符串的常见操作、对象的布尔值

    文章目录 Python中的注释 单行注释 多行注释 中文编码声明注释 字符串的常见操作(1) 编码解码的操作 增删改查以及分割 查找:find().index 统计:count() 替换:replac ...

  8. python中导入模块是用哪个关键字_关于python导入模块import与常见的模块详解

    0.什么是python模块?干什么的用的? Java中如果使用abs()函数,则需要需要导入Math包,同样python也是封装的,因为python提供的函数太多,所以根据函数的功能将其封装在不同的m ...

  9. python统计元音总数_在Python中计算i个或多个元音单词的函数?

    在下面的代码中,问题13a要求我计算一个字符串中有多少个元音.(我不必在作业中调用这个函数)但我调用它是为了测试它,这个部分是完全正确的,它可以工作.字符串可以是大写和小写,没有标点符号.在 问题13 ...

  10. 在python中len表示的数据类型是_Python学习笔记——Python数据类型

    1.列表1.1取单个值 1.2切片获取子列表 1.3用len()函数获取列表长度 1.4列表的循环 1.5列表的链接和复制 1.6列表的增.删.查 1.7列表的排序--sort()方法 2.字符串2. ...

最新文章

  1. python 获取ip
  2. 深度学习相关资料总结
  3. ANTLR 4的C#实例
  4. jetson nano 采坑记录
  5. 关于精密空调,你需要了解的都在这里!
  6. ASP.NET MVC随想录——漫谈OWIN
  7. “智汇光大 E启未来” 中国光大集团ESBU协同核心系统1.0正式发布
  8. 【Elasticsearch】搭建Elasitc stack集群需要注意的日志问题
  9. 安全沙箱冲突:Loader.content:XX 不能访问 XX 可以通过调用 Security.allowDomain 来避免此冲突。...
  10. 动画组件和动画控制器资源介绍、动画状态机
  11. Python 爬虫案例(一)
  12. Aspen ONE Suite 11.0 软件下载及其安装教程
  13. 电脑键盘部分按键失灵_Win7系统键盘部分按键失灵了怎么办?
  14. ElementUI Collapse 折叠面板
  15. 用pandas的isin,~+isin筛选数据
  16. 安装与破解IntelliJ IDEA2017
  17. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(HTML)
  18. java框架013——Spring AOP面向切面编程
  19. Sobel算子的边缘检测实现
  20. 互联网日报 | 4月27日 星期二 | 美团回应被立案调查;滴滴开通老年人打车400热线;百度App月活跃用户数达5.58亿

热门文章

  1. 多轨道音视频同步编辑方法与流程
  2. 德国语言考试c1,德国语言考试
  3. STM32中断相关概念阐述
  4. Python+django+xadmin学习与开发笔记【03】慕课平台开发之数据库设计
  5. 2018 LinkedSee灵犀首届AIOps峰会首发Linked AIOps
  6. 肩背劳损,咽喉炎,耳鸣,头晕 的自我康复
  7. LiveGBS流媒体平台GB/T28181常见问题-播放时候提示invite sms[xx] wait response error是什么问题?
  8. 面试经验 | AI 算法工程师(面试官角度)
  9. 【按键精灵】利用Excel完成数据读写
  10. 无人货架和无人货柜对比