Python使用jieba分詞


# -*- coding: utf-8 -*-
# Spyder (python 3.7)
import pandas as pd
import jieba
import jieba.analyse as anls

if __name__ == '__main__':  
    data = pd.read_excel(r'空氣指數評論.xlsx')
    # content為excel的列名
    opinion_content = data['content'].dropna().values
    all_word = ''
    for i in opinion_content: #形成整個字符串
        all_word = all_word +','+ str(i)
    all_word = all_word.strip()  #去掉字符串的空格
    all_word_upper = all_word.upper() #大寫

  #加載詞典 #jieba.load_userdict(r"D:\Python_workspace\aaaa.txt")
  
  #如果有不想被切分開的詞,例如王者榮耀,和平精英等,可以進行參數設置:tune=True
  # jieba.analyse 是基於tf-idf算法的關鍵詞抽取
    segment=['王者榮耀','和平精英']
    for ii in segment:
        jieba.suggest_freq(ii, tune=True)
    
    anls.set_stop_words("111.txt")  #加載停用詞文檔,網上可以下載或者自己創建
    tags = anls.extract_tags(all_word_upper, topK=None, withWeight=True)
    for x, w in tags:
        print('%s %s' % (x, w))
        
    for v, n in tags:
        #權重n是小數,乘了十萬成為整數,可以按需求設置不同值
        out_words= v + '\t' + str(int(n * 100000))
        #注意'a+'為追加寫入,因此如果重新運行程序,則需要先刪除上次生成的文件,結果保存在當前目錄下,可以更改目錄
        with open('.\cut_words_content.txt','a+',encoding='utf-8')as f:
            f.write(out_words+'\n')

附加:另一種jieba分詞寫法:

 sentence_seged = [seg for seg in jieba.cut(all_word) if len(seg) >= char_len]
# all_word為整個要分詞的字符串,該方式沒有利用到權重,是單純的分詞
# 返回的是分詞后的列表
# 分詞長度最少大於char_len

參考jieba中文分詞:https://github.com/fxsjy/jieba

##歡迎討論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM