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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jieba分词并做分析

發布時間:2024/7/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jieba分词并做分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Github:結巴分詞地址
https://github.com/fxsjy/jieba

幾種分詞方法的簡單使用: 一 . jieba
  • 安裝、示例? ? ?
  • pip install jieba,jieba分詞的語料是基于人民日報。 分詞示例 1 import jieba 2 3 str1 ='江州市長江大橋' 4 word_object = jieba.cut(str1) # 生成一個生成器對象 5 for each in word_object: 6 print each 我要的分詞結果是“江州/市長/江大橋”, 我需要自定義一個字典,給“江大橋”設置一個較大的頻次 當我將 “江大橋” 頻次設為2000時發現并不能切分出來, 查看原始字典發現“長江大橋”頻次3858,所以在概率統計上遠大于“江大橋”,所以將“江大橋”頻次設為1000萬。 但是實際是分不出來的,必須很極端的設為20000, 因為要保證P(江州)P(市長)P(江大橋) > P(江州)P(市)P(長江大橋) 加載用戶字典jieba.load_userdict() jieba.load_userdict('userdict.txt') ? 2. jieba.cut參數 cut(self, sentence, cut_all=False, HMM=True) method of jieba.Tokenizer instance The main function that segments an entire sentence that contains Chinese characters into seperated words. Parameter: - sentence: The str(unicode) to be segmented.? ?(需要分詞的字符串) - cut_all: Model type. True for full pattern, False for accurate pattern. (cut_all字段是分詞的全模式和普通模式/默認模式) - HMM: Whether to use the Hidden Markov Model. (是否使用HMM模式分詞,default True) 關于全模式和默認模式: str1= u“江州市長江大橋”為例: jieba.cut(str1, cut_all=True) #全模式是將詞可能生成的詞完全切分出來 Output: 江州/ 州市/市長/長江/長江大橋/大橋? (可以理解為:所有可以切分成詞的都會顯示出來,?盡可能多得分詞) jieba.cut(str1, cut_all=False) Output: 江州/市/長江大橋 add_word(word, freq=None, tag=None) # 向詞典添加詞 del_word(word) # 刪除詞典中的詞 suggest_freq(segment, tune=True) # 調整詞頻率

    ?

    其他具體使用詳見https://github.com/fxsjy/jieba 二. Thulac
  • 安裝和使用
  • Thulac 是清華大學的分詞庫,也是基于HMM的分詞器 pip install thulac安裝 1 str1 = u'江州市長江大橋' 2 import thulac 3 thu = thulac.thulac() 4 word = thu.cut(str1, text=False) 5 for each in word: 6 print each[0], each[1]

    ?

    結果如下圖,會顯示分詞結果和詞性 1 str1 = u'江州市長江大橋' 2 import thulac 3 thu = thulac.thulac() 4 word = thu.cut(str1, text=False) 對英文分詞(會將連一起的“字母和數字”切分出來, 且常規英文空格也會切分出來):
  • 參數
  • 以下是help(thulac.thulac)的doc介紹 class thulac |??Methods defined here: |?? |??__init__(self, user_dict=None, model_path=None, T2S=False, seg_only=False, filt=False, max_length=50000, deli='_', rm_space=False) |??????初始化函數,傳入用戶設置的參數,并且根據參數初始化不同 |??????模型(調入不同的.dat文件,該文件存儲了一個雙數組trie樹) |? ? ? user_name=None,?設置用戶詞典,用戶詞典中的詞會被打上uw標簽。詞典中每一個詞一行,UTF8編碼? model_path=None,?設置模型文件所在文件夾,默認為models/ T2S=False, 是否將句子從繁體轉化為簡體 seg_only=False, False時候只進行分詞,不進行詞性標注 filt=False, 是否使用過濾器去除一些沒有意義的詞語,例如“可以”。 max_length=50000, deli='_', 默認為‘_’, 設置詞與詞性之間的分隔符 rm_space=False, 是否去掉原文本中的空格后再進行分詞 |? ? |??cut(self, oiraw, text=False)? |? ? ? text=False; 是否返回文本,不返回,則是個二維list (每一維度包含 詞+詞性);返回文本則是“分詞_詞性”組成的文本。 |??cut_f(self, input_file, output_file) |? ? ? ?對文件分詞 |??cutline(self, oiraw) |? ? ?? |??fast_cut(self, oiraw, text=False) |? ? ?# fast 接口 cut-> fast_cut) |??fast_cut_f(self, input_file, output_file) |? ? ?# fast 接口 cut_f -> fast_cut_f |??foo(self, x)? |? ? ?# foo占位符,表明某個變量、函數、命令不重要,但有這個想法。 |??multiprocessing_cut_f(self, input_file, output_file, core=0) |? ? ?#多線程對文件分詞 |??run(self) #交互式: 屏幕input,屏幕output 詞性解釋: 具體示例詳見https://github.com/thunlp/THULAC-Python#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0 三、snownlp
  • 安裝、概述、示例??
  • pip install snownlp snownlp 是基于3-gram的詞性標注、HMM模型的分詞算法。? 示例: 1 from snownlp import SnowNLP 2 str1 = u'江州市長江大橋' 3 snow_obj = SnowNLP(str1) 4 snow_obj.words # list 分詞后返回一個分詞結果的list 5 for each in snow_obj: 6 print each 結果如下圖??
  • 參數、部分方法
  • 1 from snownlp import SnowNLP 2 str1 = u'江州市長江大橋' 3 snow_obj = SnowNLP(str1) 4 snow_obj.words # list 分詞后返回一個分詞結果的list 5 for each in snow_obj: 6 print each 7 snow_obj.tags # 一維list,內含元組(詞,詞性) 8 snow_obj.sentiments # positive的概率 9 snow_obj.pinyin # 每個詞轉為拼音,每個詞構成list

    ?

    其他方法詳見https://github.com/isnowfy/snownlp?或help(SnowNLP)查看 四、yaha
  • 安裝、簡述、示例
  • pip install yaha yaha中文分詞 基于查找句子的最大概率路徑來進行分詞 1 str1 = u'江州市長江大橋' 2 from yaha import Cuttor 3 cuttor = Cuttor() # 然后會加載字典 4 word = cuttor.cut(str1) # 生成器對象 5 for each in word: 6 print word

    ?

    yaha分詞最大的弊端就是對英文無法在做分詞,當遇到英文時,會將英文分為每個字母。 五、genius? 1. 安裝、簡述和示例 pip install genius genius 是一款開源中文分詞器,其基于條件隨機場(CRF)算法的。 (這部分下次再寫) import re from collections import Counter import jiebadef cut_word(datapath):with open(datapath,'r',encoding='utf-8')as fp:string = fp.read()data = re.sub(r"[\s+\.\!\/_,$%^*(【】:\]\[\-:;+\"\']+|[+——!,。?、~@#¥%……&*()]+|[0-9]+", "", string)word_list = jieba.cut(data)print(type(word_list))return word_listdef static_top_word(word_list,top=5):result = dict(Counter(word_list))print(result)sortlist = sorted(result.items(),key=lambda x:x[1],reverse=True)resultlist = []for i in range(0,top):resultlist.append(sortlist[i])return resultlistdef main():datapath = 'comment.txt'word_list = cut_word(datapath)Result = static_top_word(word_list)print(Result) main()

    總結

    以上是生活随笔為你收集整理的jieba分词并做分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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