python第六周:字典,jieba库

字典:

字典类型是“映射”的体现

键值对:键是数据索引的扩展

字典是键值对的集合,键值对之间无序,采用大括号{}和dict()创建,键值对用冒号。表示为

{<键1>:<值1>,<键2>:<值2>, ... , <键n>:<值n>}

在字典变量中,通过键值获取值,如: <值> = <字典变量>[<键>]

>>> d = {"中国":"北京","美国":"华盛顿":"法国":"巴黎"}
>>> d["中国"] 
"北京"
>>> de = {} ; type(de)
<class 'dict'>#返回变量x的类型

字典类型操作函数和方法

del d[k]删除字典d中键k对应的数据值
k in d判断键k是否在字典d中,如果在返回True,否则返回false
d.keys()返回字典d中所有键信息
d.values()返回字典d中所有值的信息
d.items()返回字典d中所有的键值对信息
d.get(k,<default>)键k存在,返回相应值,不在则返回<default>值
d.pop(k,<default>)键k存在,则取出相应值,不在则返回<default>值
d.popitem()随机从字典d中取出一个键值对,以元组形式返回
d.clear()删除所有键值对
len(d)返回字典d中元素的个数

 

jieba库是优秀的中午分词第三方库

cmd命令: pip install jieba

原理: 利用了一个中文词库,确定汉字之间的关联概率

精确模式:把文本精确的分开,不存在冗余单词

全模式:把文本所有可能的词语扫描出来,有冗余

搜索引擎模式:在精确模式的基础上,对长词再次切分

常用函数

jieba.lcut(s)精确模式,返回一个列表类型的分词结果
jieba/lcut(s,cut_all=Ture)全模式
jieba.lcut_for_search(s)搜索引擎模式
jieba.add_word(w)向分词词典增加新词w

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以帮您写一下这个程序。 首先,您需要安装jieba,可以通过以下命令在终端中安装: ``` pip install jieba ``` 然后,您可以使用以下代码来统计《西游记》中前15位出场最多的人物: ```python import jieba from collections import Counter # 读取《西游记》文本 with open('西游记.txt', 'r', encoding='utf-8') as f: content = f.read() # 使用jieba进行分词 words = jieba.lcut(content) # 过滤掉长度为1的词语 words = [word for word in words if len(word) > 1] # 统计出现次数并排序 word_counts = Counter(words).most_common() # 输出前15个结果 print('前15位出场最多的人物:') for word, count in word_counts[:15]: print(word, count) ``` 其中,需要将代码中的`'西游记.txt'`替换为您本地《西游记》文本的路径。 运行以上代码后,即可得到《西游记》中前15位出场最多的人物。 ### 回答2: 要统计《西游记》中前15位出场最多的人物,可以利用jieba来实现中文分词和计数。 首先,需要使用jieba进行中文分词,将《西游记》的文本进行分词处理。可以使用`jieba.cut()`函数逐行对文本进行分词,然后将分词结果保存到一个列表中。 接下来,遍历分词结果的列表,使用一个字典来统计每个人物出现的次数。如果字典中已经有该人物的记录,则将其对应的计数加1;如果字典中没有该人物的记录,则将其添加到字典中,并将计数置为1。 最后,根据人物出现的次数进行排序,取出出现次数最多的前15位人物,并将结果打印出来。 下面是使用Python编写的示例代码: ```python import jieba # 打开《西游记》文本文件 file = open("西游记.txt", "r", encoding="utf-8") # 逐行读取文本并分词 words = [] for line in file: words += jieba.cut(line) # 统计人物出现的次数 counts = {} for word in words: if len(word) > 1: # 只统计长度大于1的词语,避免统计单个字符 if word in counts: counts[word] += 1 else: counts[word] = 1 # 根据出现次数进行排序 sorted_counts = sorted(counts.items(), key=lambda x: x[1], reverse=True) # 输出出现次数最多的前15位人物 for i in range(15): print(f"第{i+1}位:{sorted_counts[i][0]},出现次数:{sorted_counts[i][1]}") ``` 上述代码中,需要将《西游记》的文本文件(例如名为"西游记.txt")放在同一目录下,并保证文件的编码为UTF-8。这样,程序将会自动读取该文件并进行分词、统计和排序,最后输出出现次数最多的前15位人物的结果。 ### 回答3: 要统计《西游记》中前15位出场最多的人物,我们可以使用jieba来进行分词处理。首先,我们需要将《西游记》的文本导入到Python中,然后使用jieba来进行分词。接下来,我们可以创建一个字典,用于存储各个人物以及它们出现的次数。 具体步骤如下: 1. 导入jieba:`import jieba` 2. 读取《西游记》文本文件,并将其内容存储在一个字符串变量中。 3. 使用jieba进行分词,并以空格分隔开每个词语。`words = jieba.lcut(text)` 4. 创建一个空字典用于存储人物和它们的出现次数。`characters = {}` 5. 遍历分词后的词语列表,对于每个词语,如果它长度大于等于2,则将其加入到字典中。如果它已经存在于字典中,就增加其出现次数,否则将其初始出现次数设为1。 6. 对字典按照出现次数进行排序,从高到低。`sorted_characters = sorted(characters.items(), key=lambda x: x[1], reverse=True)` 7. 循环打印前15位出现最多的人物和它们的出现次数。 ```python for character, count in sorted_characters[:15]: print(character, count) ``` 这样,我们就可以使用jieba编写程序统计《西游记》中前15位出场最多的人物。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值