第九节 jieba模块

一、jieba库

库的名称:jieba

作用:第三方中文分词库

导库方法:

import jieba

二、功能总结

1. lcut("字符串")

作用:将字符串分词

格式:txtList = jieba.lcut(txt)

参数为字符串,作用于分词存在列表里

import jieba
txt = "我喜欢学习编程"
txtList = jieba.lcut(txt)
print(txtList)

alt lcut()

2. 使用字典统计词语出现次数

  • 如果词语在字典中,那么词语的值加一(给字典的值加1)

  • 如果词语不在字典中,那么词语的值设置为一(创建新的键值对)

for w in wordList:
        if w in wordDict:
            wordDict[w] = wordDict[w]+1
        else:
            wordDict[w] = 1

3. 列表元素连接成字符串

作用:用于连接列表的元素

格式:"".join(列表名)

前面为用于连接列表元素的字符,后面括号填写的参数为列表

newTxt = "".join(wordList)

4. open()

作用:读取xml文件

格式:with open("后浪弹幕.xml", "r", encoding="utf-8") as file:

第一个参数"后浪弹幕.xml"为文件名,第二个参数"r"为文件打开方式,第三个参数encoding="utf-8"表示编码方式

data = file.read()表示读取文件中的内容并保存在data中

with open("后浪弹幕.xml", "r", encoding="utf-8") as file:
    data = file.read()

5. bs4库

作用:用来解析爬取的网页,提取信息

导库:import bs4

6. BeautifulSoup()

作用:将提取的xml文件变成解析对象

格式:soup = bs4.BeautifulSoup(data, "lxml")

soup是变量名,存储解析之后的内容

data是要解析的数据

"lxml"是解析器

import bs4
soup = bs4.BeautifulSoup(data, "lxml")

7. find_all()

作用:获取内容

格式:txt = soup.find_all(name="标签名",属性="属性名")

txt保存获取到的内容,是一个列表

find_all返回的是一个列表,里面存放所有符合条件的标签

name参数和属性参数可以根据需要选择一个或多个

常用的属性有id、class,注意class后面的 不能省略

txt = soup.find_all(name="d")

8. WordCloud().generate()

作用:生成词云

格式:WordCloud().generate(newTxt)

# 提取xml文件中文字的方法,词频分析
import bs4
import jieba
from wordcloud import WordCloud, ImageColorGenerator
from imageio import imread
from xes.tool import *
xopen() #打开文件夹

txtAll = ""
wordDict = {}
with open("后浪弹幕.xml", "r", encoding="utf-8") as file:
    data = file.read()
soup = bs4.BeautifulSoup(data, "lxml")
txt = soup.find_all(name="d")

for line in txt:
    print(line.text)  # 输出弹幕
    txtAll = txtAll + line.text
print("总字数为:", len(txtAll))
wordList = jieba.lcut(txtAll)
for w in wordList:
        if w in wordDict:
            wordDict[w] = wordDict[w]+1
        else:
            wordDict[w] = 1
print(wordDict)
print("总词数为:", len(wordDict))
# 制作词云图
newTxt = "".join(wordList)
img = imread("4.png")
myCloud = WordCloud(font_path="SongTi.otf",
                    background_color="black",
                    height=400,
                    width=200,
                    max_words=1000,
                    max_font_size=50,
                    min_font_size=4,
                    font_step=2,
                    mask=img
                    ).generate(newTxt)
# 根据图片设置颜色
# imgColor = ImageColorGenerator(img)
# myCloud.recolor(color_func = imgColor)                    
myCloud.to_file("004.png")

alt 词云

results matching ""

    No results matching ""