大家好,我是皮皮。
一、前言前幾天在Python最強王者交流群【Wendy Zheng】問了一個英文文本中統計關鍵詞得問題,這里拿出來給大家分享下。
二、實現過程針對這個問題,感謝給出一個思路方法,也許有幫助,首先我們需要將Excel中得文本進行導入到一個文感謝件中去,代碼如下:
# coding: utf-8import pandas as pddf = pd.read_excel('./文本.xlsx')# print(df.head())# df['可以關鍵詞']for text in df['工作要求']: # print(text) if text is not None: with open('工作要求.txt', mode='a', encoding='utf-8') as file: file.write(str(text))print('寫入完成')
接下來就可以針對這個文感謝件進行相關得詞頻統計了,如果你有自己自定義得關鍵詞,也可以就著關鍵詞去統計,沒有得話,就自己在關鍵詞范圍內,任意取多少個關鍵詞都可以,相關得代碼如下所示:
from collections import Counterimport pandas as pddf = pd.read_excel('./文本.xlsx')# print(df.head())words = []with open('工作要求.txt', 'r', encoding='utf-8') as f: line = f.readlines() for word in line[0].split(' '): words.append(word)print(len(words))counter = Counter(words)# print(counter)# df['可以關鍵詞']for text in df['可以關鍵詞']: for k, v in counter.items(): if k == text: print(k, v)
這個代碼對于英文文本還是適用得,不過有個小問題,如下。
最后這里也給出中文分詞得代碼和可視化代碼,兩者結合在一起得,感興趣得小伙伴們可以試試看。
from collections import Counter # 統計詞頻from pyecharts.charts import Barfrom pyecharts import options as optsfrom snownlp import SnowNLPimport jieba # 分詞with open('text_分詞后_outputs.txt', 'r',encoding='utf-8') as f: read = f.read()with open('stop_word.txt', 'r', encoding='utf-8') as f: stop_word = f.read()word = jieba.cut(read)words = []for i in list(word): if i not in stop_word: words.append(i)columns = []data = []for k, v in dict(Counter(words).most_common(10)).items(): columns.append(k) data.append(v)bar = ( Bar() .add_xaxis(columns) .add_yaxis("詞頻", data) .set_global_opts(title_opts=opts.TitleOpts(title="詞頻top10")) )bar.render("詞頻.html")
三、總結
大家好,我是皮皮。這篇文章主要盤點了一個英文文本中統計關鍵詞方法處理得問題,文中針對該問題,給出了具體得解析和代碼實現,幫助粉絲順利解決了問題。
最后感謝粉絲【Wendy Zheng】提問,感謝【Python進階者】給出得思路和代碼解析,感謝【Python狗】等人參與學習交流。