91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么實現詞頻統計功能

發布時間:2021-08-11 14:47:00 來源:億速云 閱讀:710 作者:Leah 欄目:大數據

這篇文章將為大家詳細講解有關Python中怎么實現詞頻統計功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

數據準備

import jieba

with open("D:/hdfs/novels/天龍八部.txt", encoding="gb18030") as f:
    text = f.read()
with open('D:/hdfs/novels/names.txt', encoding="utf-8") as f:
    for line in f:
        if line.startswith("天龍八部"):
            names = next(f).split()
            break

for word in names:
    jieba.add_word(word)

#  加載停用詞
with open("stoplist.txt", encoding="utf-8-sig") as f:
    stop_words = f.read().split()
stop_words.extend(['天龍八部', '\n', '\u3000', '目錄', '一聲', '之中', '只見'])
stop_words = set(stop_words)
all_words = [word for word in cut_word if len(word) > 1 and word not in stop_words]
print(len(all_words), all_words[:20])

結果:

216435 ['天龍', '釋名', '青衫', '磊落', '險峰', '行玉壁', '月華', '明馬', '疾香', '幽崖', '高遠', '微步', '生家', '子弟', '家院', '計悔情', '虎嘯', '龍吟', '換巢', '鸞鳳']

統計詞頻排名前N的詞

原始字典自寫代碼統計:

wordcount = {}
for word in all_words:
    wordcount[word] = wordcount.get(word, 0)+1
sorted(wordcount.items(), key=lambda x: x[1], reverse=True)[:10]

使用計數類進行詞頻統計:

from collections import Counter

wordcount = Counter(all_words)
wordcount.most_common(10)

結果:

Python中怎么實現詞頻統計功能

使用pandas進行詞頻統計:

pd.Series(all_words).value_counts().head(10)

分詞過程中直接統計詞頻

Pandas只能對已經分好的詞統計詞頻,所以這里不再演示。上面的測試表示,Counter直接對列表進行計數比pyhton原生帶快,但循環中的表現還未知,下面再繼續測試一下。

首先使用原生API直接統計詞頻并排序:

%%time
wordcount = {}
for word in jieba.cut(text):
    if len(word) > 1 and word not in stop_words:
        wordcount[word] = wordcount.get(word, 0)+1
print(sorted(wordcount.items(), key=lambda x: x[1], reverse=True)[:10])

結果:

[('段譽', 2496), ('說道', 2151), ('虛竹', 1633), ('蕭峰', 1301), ('武功', 1095), ('阿紫', 922), ('阿朱', 904), ('喬峰', 900), ('王語嫣', 877), ('慕容復', 871)]
Wall time: 6.04 s

下面我們使用Counter統計詞頻并排序:

%%time
wordcount = Counter()
for word in jieba.cut(text):
    if len(word) > 1 and word not in stop_words:
        wordcount[word] += 1
print(wordcount.most_common(10))

結果:

[('段譽', 2496), ('說道', 2151), ('虛竹', 1633), ('蕭峰', 1301), ('武功', 1095), ('阿紫', 922), ('阿朱', 904), ('喬峰', 900), ('王語嫣', 877), ('慕容復', 871)]
Wall time: 6.21 s

關于Python中怎么實現詞頻統計功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青河县| 萍乡市| 平顺县| 天峻县| 察隅县| 青海省| 陇西县| 广东省| 花垣县| 会昌县| 辽中县| 凉城县| 达尔| 广东省| 东至县| 沽源县| 城口县| 若羌县| 金湖县| 民县| 安阳市| 巫山县| 庆阳市| 东光县| 扎兰屯市| 定南县| 广德县| 翁牛特旗| 长子县| 延安市| 陆河县| 临海市| 蒙阴县| 常山县| 阜平县| 大洼县| 花莲县| 西贡区| 宜城市| 商河县| 澄江县|