【gensim--dictionary】使用方法

  1. import jieba, os  
  2. import codecs  
  3. from gensim import corpora, models, similarities  
  4. from pprint import pprint  
  5. from collections import defaultdict  
  6. import sys  
  7. import pickle  
  8. reload(sys)  
  9. sys.setdefaultencoding('utf-8')  
  10.   
  11. def print_dict(dict):  
  12.     for key in dict:  
  13.         print type(key),key,str(dict[key]),  
  14.     print  
  15. def test3():  
  16.     ''''''' 
  17.     gensim學習之Dictionary 
  18.     '''  
  19.     a = [['一','一','二'],['一','二','三']]  
  20.     b = ['一','一','三','四','四']  
  21.     dictionary = corpora.Dictionary(a)  
  22.     print "########dictionary信息##########"  
  23.     print str(dictionary) #  
  24.     print "字典,{單詞id,在多少文檔中出現}"  
  25.     print dictionary.dfs #字典,{單詞id,在多少文檔中出現}  
  26.     print "文檔數目"  
  27.     print dictionary.num_docs #文檔數目  
  28.     print "dictionary.items()"  
  29.     print_dict(dict(dictionary.items())) #  
  30.     print "字典,{單詞id,對應的詞}"  
  31.     print_dict(dictionary.id2token) #字典,{單詞id,對應的詞}  
  32.     print "字典,{詞,對應的單詞id}"  
  33.     print_dict(dictionary.token2id) #字典,{詞,對應的單詞id}  
  34.     print "所有詞的個數"  
  35.     print dictionary.num_pos #所有詞的個數  
  36.     print "每個文件中不重複詞個數的和"  
  37.     print dictionary.num_nnz #每個文件中不重複詞個數的和  
  38.     print "########doc2bow##########"  
  39.     #dictionary.add_documents([b])  
  40.     #allow_update->更新當前字典;return_missing->返回字典中不存在的詞  
  41.     #result爲b文章轉換得到的詞袋,列表[(單詞id,詞頻)]  
  42.     result, missing = dictionary.doc2bow(b, allow_update=False, return_missing=True)  
  43.     print "詞袋b,列表[(單詞id,詞頻)]"  
  44.     print result  
  45.     print "不在字典中的詞及其詞頻,字典[(單詞,詞頻)]"  
  46.     print_dict(missing)  
  47.     print "########bow信息##########"  
  48.     for id, freq in result:  
  49.         print id, dictionary.id2token[id], freq  
  50.     print "########dictionary信息##########"  
  51.     #過濾文檔頻率大於no_below,小於no_above*num_docs的詞  
  52.     dictionary.filter_extremes(no_below=1, no_above=0.5, keep_n=10)  
  53.   
  54.     return  
  55.   
  56. test3()  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章