附加:另一種jieba分詞寫法: 參考jieba中文分詞:https://github.com/fxsjy/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
##歡迎討論