日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python简单练习 -统计文本词频并用柱状图显示

發布時間:2024/7/23 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python简单练习 -统计文本词频并用柱状图显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數功能:統計文本中單詞頻率,并用柱狀圖顯示前10個最高的單詞

這里統計的是函數所在文件本身

import turtlecount = 10 data = [] words = [] # y yScale = 6 # X xScale = 30def drawLine(t, x1, y1, x2, y2):t.penup()t.goto(x1, y1)t.pendown()t.goto(x2, y2)def drawText(t, x, y, text):t.penup()t.goto(x, y)t.pendown()t.write(text)def drawRectangle(t, x, y):x = x*xScaley = y*yScaledrawLine(t, x-5, 0, x-5, y)drawLine(t, x-5, y, x+5, y)drawLine(t, x+5, y, x+5, 0)drawLine(t, x+5, 0, x-5, 0)def drawBar(t):for i in range(count):drawRectangle(t, i+1, data[i])def drawGraph(t):drawLine(t, 0, 0, 360, 0)drawLine(t, 0, 300, 0, 0)for x in range(count):x=x+1drawText(t, x*xScale-4, -20, (words[x-1]))drawText(t, x*xScale-4, data[x-1]*yScale+10, data[x-1])drawBar(t)def replacePunctuations(line):for ch in line:if ch in "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~":line = line.replace(ch, " ")return linedef processLine(line, wordCounts):line = replacePunctuations(line)words = line.split()for word in words:if word in wordCounts:wordCounts[word] += 1else:wordCounts[word] = 1def main():filename = "test1.py"infile = open(filename, "r")wordCounts = {}for line in infile:processLine(line.lower(), wordCounts)pairs = list(wordCounts.items())items = [[x, y] for (y, x) in pairs]items.sort()for i in range(len(items)-1, len(items)-count-1, -1):print(items[i][1]+"\t"+str(items[i][0]))data.append(items[i][0])words.append(items[i][1])turtle.title("histogram")turtle.setup(900, 750, 0, 0)t = turtle.Turtle()t.hideturtle()t.width(3)drawGraph(t)if __name__ == "__main__":main()
實現結果如下:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python简单练习 -统计文本词频并用柱状图显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。