1、用ZIP创建字典
- 创建字典的三种方法
dict(a=1,b=2,c=3)
dict([(a,1),(b,2),(c,3)])
dict({a:1,b:2,c:3})
- 推荐使用第二种方法结合zip创建
key = 'abcde'
value = range(1, 6)
dict(zip(key, value))
2、使用iteritems遍历字典
d = dict(a=1, b=2, c=3)
for k, v in d.iteritems():
print k, v
# a 1
# c 3
# b 2
3、用items遍历字典
当然也可以使用items来遍历字典, 与之不同的是iteritems返回一个迭代器
d = dict(a=1, b=2, c=3)
for k, v in d.items():
print k, v
# a 1
# c 3
# b 2
In [69]: d.iteritems()
Out[69]: <dictionary-itemiterator at 0x3f216d8>
In [70]: d.items()
Out[70]: [('a', 1), ('c', 3), ('b', 2)]
4、使用get,pop获取删除key
-
get(key,[default])
如果key在字典中,返回对应的value, 否则返回default。所以从来不会引发异常 -
pop(key,[,default])
如果default未设置,则如果key不在字典中,删除key将引发异常。使用时加上default
**5、dict(dict1,dict2)合并两个字典
In [29]: dict1
Out[29]: {'a': 1, 'b': 2, 'c': 3}
In [30]: dict2
Out[30]: {'d': 4, 'e': 5, 'f': 6}
In [31]: dict(dict1, **dict2)
Out[31]: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
print(doc_id_dict)
{'1': 0, '10': 1, '11': 2, '12': 3, '13': 4, '14': 5, '15': 6, '16': 7, '17': 8, '18': 9, '19': 10, '2': 11, '20': 12, '3': 13, '4': 14, '5': 15, '6': 16, '7': 17, '8': 18, '9': 19}
# print(dictionary.token2id)
与和min_wordcount = ?的前后有关
# {'人体': 0, '养殖': 1, '净化器': 2, '成本': 3, '栽培': 4, '植物': 5, '水草': 6, '水资源': 7, '污染': 8,...}
max_freq = 1
min_wordcount = 1
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'人体': 0, '养殖': 1, '净化器': 2, '成本': 3, '栽培': 4, '植物': 5, '水草': 6, '水资源': 7, '污染': 8, '滤芯': 9, '环境': 10, '生物': 11, '电能': 12, '空气': 13, '空间': 14, '箱': 15, '花盆': 16, '装置': 17, '预防': 18, '食用': 19, '鱼类': 20, '鱼缸': 21, '上海': 22, '产品': 23, '人员': 24, '价格': 25, '供货': 26, '先例': 27, '公司': 28, '前景': 29, '力量': 30, '半导体': 31, '厂': 32, '压力': 33, '司': 34, '吸附塔': 35, '味': 36, '工程': 37, '市场': 38, '应用': 39, '开发': 40, '施工': 41, '有限公司': 42, '本': 43, '杂质': 44, '气动阀门': 45, '水': 46, '水平': 47, '水质': 48, '活性炭': 49, '独有': 50, '科研': 51, '稳定': 52, '空白': 53, '纯水': 54, '经验': 55, '色': 56, '行业': 57, '认知': 58, '设备': 59, '设计': 60, '费用': 61, '运行': 62, '邦': 63, '需求': 64, '领域': 65, '颗粒': 66, '饮用水': 67, '冶炼': 68, '含尘量': 69, '垃圾': 70, '排放': 71, '水泥': 72, '湿度': 73, '炉': 74, '烟气': 75, '特殊性': 76, '环保': 77, '用水': 78, '电站': 79, '硫': 80, '窑': 81, '粘性': 82, '袋': 83, '钢铁': 84, '锅炉': 85, '除尘': 86, '除尘器': 87, '静电': 88, '00Pa': 89, 'μ': 90, '体液': 91, '值': 92, '关键': 93, '净化': 94, '出口': 95, '可溶物': 96, '叶片': 97, '后续': 98, '含量': 99, '吸收塔': 100, '周期': 101, '因素': 102, '固形物': 103, '垢': 104, '安全': 105, '尘': 106, '屋脊': 107, '平板': 108, '影响': 109, '径': 110, '指标': 111, '措施': 112, '板': 113, '气': 114, '流速': 115, '浆': 116, '浆液': 117, '浓度': 118, '液': 119, '火电厂': 120, '烟尘': 121, '生成物': 122, '石膏雨': 123, '粒': 124, '间距': 125, '除雾除尘器': 126, '集': 127, '雾': 128, '冷析釜': 129, '大气': 130, '尾气': 131, '气体': 132, '水槽': 133, '油': 134, '油气': 135, '甲醇': 136, '加热': 137, '劳动强度': 138, '工人': 139, '常': 140, '恶化': 141, '油田': 142, '注水': 143, '清除': 144, '灰尘': 145, '燃烧': 146, '费': 147, '0um—um': 148, '上升': 149, '介质': 150, '伤害': 151, '体': 152, '作用': 153, '分配': 154, '刮刀': 155, '化验': 156, '区': 157, '单位': 158, '压强': 159, '变化': 160, '口': 161, '名称': 162, '品位': 163, '固体': 164, '地面': 165, '大气压': 166, '头': 167, '实验室': 168, '对照': 169, '工作': 170, '工艺': 171, '干燥': 172, '平台': 173, '平均值': 174, '平面': 175, '强': 176, '循环': 177, '微米': 178, '情况': 179, '成分': 180, '推动力': 181, '操作': 182, '效用': 183, '数据': 184, '料': 185, '机': 186, '标高': 187, '检测': 188, '槽体': 189, '正负': 190, '气流': 191, '水分': 192, '水桶': 193, '水泵': 194, '水箱': 195, '液体': 196, '滤液': 197, '漏斗': 198, '物质': 199, '环节': 200, '球': 201, '皮带机': 202, '目': 203, '直径': 204, '真空': 205, '矿': 206, '矿浆': 207, '矿石': 208, '磁': 209, '站': 210, '管道': 211, '粉尘': 212, '精矿': 213, '线': 214, '终端': 215, '职业': 216, '胶带': 217, '脱水': 218, '节能': 219, '表面': 220, '身体': 221, '铁': 222, '陶瓷': 223, '颗粒物': 224, '饼': 225, '高位': 226, '人力': 227, '冷却水': 228, '厚度': 229, '工序': 230, '杂物': 231, '池': 232, '污泥': 233, '沉淀': 234, '沉淀物': 235, '资源': 236, '都会': 237, '铁屑': 238, '关系': 239, '动力': 240, '噪声': 241, '场所': 242, '寿命': 243, '扬尘': 244, '效率': 245, '散热': 246, '润滑油': 247, '牵引电机': 248, '电机': 249, '矿业': 250, '矿区': 251, '矿山': 252, '破坏': 253, '碎石': 254, '稳定性': 255, '线圈': 256, '绝缘': 257, '膜': 258, '转子': 259, '轴承': 260, '运输': 261, '风扇': 262, '000A': 263, '0A': 264, '0min': 265, 'SRB': 266, 'TGB': 267, '丙烷': 268, '伍': 269, '功效': 270, '化合物': 271, '化学剂': 272, '危害': 273, '原料': 274, '发明': 275, '叔胺': 276, '地位': 277, '地层': 278, '型': 279, '季胺盐类': 280, '差': 281, '废水': 282, '微生物': 283, '性能': 284, '抗药性': 285, '效': 286, '杀菌剂': 287, '比例': 288, '氧': 289, '氧化': 290, '氯': 291, '氯化氢胍': 292, '水溶性': 293, '污水': 294, '洁儿灭': 295, '活性': 296, '温度': 297, '溶剂': 298, '炼油厂': 299, '物': 300, '环': 301, '用量': 302, '盐酸聚六亚甲基胍': 303, '硫酸盐': 304, '硫酸铁': 305, '絮': 306, '细菌': 307, '聚胺丙基双胍': 308, '腐生菌': 309, '腐蚀': 310, '腐蚀性': 311, '范围': 312, '菌': 313, '调节': 314, '酚': 315, '醛': 316, '采油': 317, '重量': 318, '金属': 319, '釜': 320, '铁细菌': 321, '00MW': 322, 'GB': 323, '二氧化硫': 324, '利用率': 325, '发展': 326, '回收': 327, '地区': 328, '建设': 329, '我国': 330, '机组': 331, '标准': 332, '污染物': 333, '法': 334, '添加剂': 335, '火电': 336, '煤': 337, '电厂': 338, '矛盾': 339, '社会效益': 340, '经济': 341, '速度': 342, 'O': 343, '公报': 344, '再生': 345, '分离器': 346, '卡车': 347, '压缩': 348, '压缩机': 349, '原因': 350, '发动机': 351, '器': 352, '壳': 353, '密封圈': 354, '干燥剂': 355, '建筑': 356, '形': 357, '排': 358, '日本': 359, '机械': 360, '材料': 361, '构件': 362, '橡胶': 363, '汽车': 364, '润滑': 365, '碰撞': 366, '膨': 367, '负荷': 368, '车辆': 369, '过滤器': 370, '例子': 371, '制动器': 372, '号': 373, '驱动': 374, 'Biofilm': 375, 'Legionella': 376, 'MBC': 377, 'MIC': 378, 'pellicle': 379, '体系': 380, '保护': 381, '军团': 382, '制剂': 383, '制品': 384, '制造': 385, '化学': 386, '危险性': 387, '变质': 388, '品质': 389, '在制品': 390, '基': 391, '增殖': 392, '多糖': 393, '对象': 394, '开平': 395, '形成': 396, '抑制': 397, '担心': 398, '族': 399, '期望': 400, '氨基': 401, '浮游': 402, '特征': 403, '状态': 404, '理想': 405, '生物膜': 406, '糖类': 407, '细胞': 408, '羧': 409, '耐性': 410, '芳香': 411, '苯甲酸': 412, '药剂': 413, '蛋白质': 414, '衍生物': 415, '记载': 416, '质': 417, '选择性': 418, '通路': 419, '酸': 420, '阶段': 421, '高浓度': 422, '000ppm': 423, '00ppm': 424, '二氧化碳': 425, '人': 426, '公告': 427, '吸附': 428, '吸附剂': 429, '呼吸': 430, '国': 431, '年月': 432, '必要性': 433, '月': 434, '界限': 435, '空调': 436, '胺': 437, '仿古': 438, '吸尘器': 439, '性': 440, '成品': 441, '排风扇': 442, '砖': 443, '适用性': 444, 'Japanesemustardspinach': 445, 'イ': 446, 'ヘ': 447, 'モ': 448, 'ヤ': 449, 'ロ': 450, '人们': 451, '凝聚': 452, '剂': 453, '叶': 454, '国王': 455, '埃及': 456, '工厂': 457, '废液': 458, '微粒': 459, '悬浮': 460, '投入': 461, '方面': 462, '氟': 463, '法例': 464, '电': 465, '碱': 466, '碱性': 467, '离子': 468, '种类': 469, '管制': 470, '自动化': 471, '菜': 472, '课题': 473, '质量': 474, '重金属': 475, '量': 476, '阳离子': 477, '高分子': 478, 'mulukhiya': 479, '供给': 480, '基础': 481, '工业': 482, '希望': 483, '悬浊液': 484, '排水': 485, '研究': 486, '系': 487, '菜叶': 488, '噪音': 489, '定制': 490, '尺寸': 491, '形状': 492, '消费者': 493, '电风扇': 494, '相关': 495, '网': 496, '过滤': 497, '交换器': 498, '冷却': 499, '加热器': 500, '气性': 501, '水蒸气': 502, '沸石': 503, '状': 504, '硅胶': 505, '蜂窝': 506, '风': 507, '高温': 508}
max_freq = 1
min_wordcount = 2
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'人体': 0, '净化器': 1, '成本': 2, '植物': 3, '水资源': 4, '污染': 5, '环境': 6, '空气': 7, '空间': 8, '装置': 9, '产品': 10, '人员': 11, '价格': 12, '公司': 13, '本': 14, '杂质': 15, '水': 16, '活性炭': 17, '稳定': 18, '色': 19, '设备': 20, '运行': 21, '颗粒': 22, '排放': 23, '烟气': 24, '电站': 25, '硫': 26, '锅炉': 27, '除尘': 28, '除尘器': 29, '静电': 30, 'μ': 31, '值': 32, '关键': 33, '净化': 34, '可溶物': 35, '后续': 36, '含量': 37, '安全': 38, '尘': 39, '影响': 40, '径': 41, '指标': 42, '板': 43, '浆': 44, '浓度': 45, '液': 46, '粒': 47, '大气': 48, '气体': 49, '油': 50, '油田': 51, '注水': 52, '上升': 53, '体': 54, '作用': 55, '区': 56, '变化': 57, '口': 58, '名称': 59, '固体': 60, '工作': 61, '干燥': 62, '情况': 63, '成分': 64, '机': 65, '水分': 66, '物质': 67, '磁': 68, '粉尘': 69, '表面': 70, '工序': 71, '资源': 72, '效率': 73, '稳定性': 74, '膜': 75, '转子': 76, '运输': 77, '废水': 78, '杀菌剂': 79, '氧': 80, '物': 81, '絮': 82, '细菌': 83, '腐蚀': 84, '菌': 85, '金属': 86, '法': 87, '公报': 88, '再生': 89, '分离器': 90, '压缩': 91, '压缩机': 92, '原因': 93, '器': 94, '干燥剂': 95, '日本': 96, '材料': 97, '构件': 98, '汽车': 99, '负荷': 100, '车辆': 101, '过滤器': 102, '号': 103, '制造': 104, '开平': 105, '人': 106, '吸附': 107, '吸附剂': 108, '国': 109, '月': 110, '国王': 111, '埃及': 112, '微粒': 113, '离子': 114, '种类': 115, '自动化': 116, '菜': 117, '课题': 118, '重金属': 119, '量': 120, '阳离子': 121, '高分子': 122}
=MID(E8,3,LEN(E8)-3)
max_freq = 1
min_wordcount = 3
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'人体': 0, '成本': 1, '污染': 2, '环境': 3, '空气': 4, '装置': 5, '杂质': 6, '水': 7, '活性炭': 8, '稳定': 9, '设备': 10, '排放': 11, '烟气': 12, '硫': 13, '锅炉': 14, '静电': 15, '净化': 16, '安全': 17, '影响': 18, '浓度': 19, '液': 20, '大气': 21, '油': 22, '体': 23, '作用': 24, '工作': 25, '情况': 26, '成分': 27, '水分': 28, '物质': 29, '表面': 30, '工序': 31, '效率': 32, '物': 33, '公报': 34, '干燥剂': 35, '日本': 36, '材料': 37, '号': 38, '吸附': 39}
max_freq = 1
min_wordcount = 4
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'人体': 0, '成本': 1, '污染': 2, '环境': 3, '空气': 4, '装置': 5, '水': 6, '设备': 7, '排放': 8, '烟气': 9, '浓度': 10, '液': 11, '大气': 12, '油': 13, '体': 14, '作用': 15, '情况': 16, '水分': 17, '物质': 18, '效率': 19, '公报': 20, '日本': 21, '号': 22}
max_freq = 1
min_wordcount = 5
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'污染': 0, '环境': 1, '空气': 2, '装置': 3, '水': 4, '设备': 5, '排放': 6, '液': 7, '作用': 8, '水分': 9, '物质': 10, '公报': 11, '日本': 12}
max_freq = 1
min_wordcount = 6
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'污染': 0, '环境': 1, '空气': 2, '装置': 3, '水': 4, '排放': 5, '液': 6, '作用': 7, '公报': 8, '日本': 9}
max_freq = 1
min_wordcount = 7
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
{'环境': 0, '空气': 1, '装置': 2, '水': 3, '公报': 4, '日本': 5}
但是报错
Traceback (most recent call last):
Topic coherence: -2.465e+01
File "D:/AtmodelEnd/AtmodelEnd.py", line 102, in <module>
doc2author=at_model.doc2author) / corpus_words
File "D:\Python3.6.4\lib\site-packages\gensim\models\atmodel.py", line 880, in bound
phinorm = self.compute_phinorm(expElogtheta[authors_d, :], expElogbeta[:, ids])
IndexError: arrays used as indices must be of integer (or boolean) type
max_freq = 1
min_wordcount = 22
dictionary.filter_extremes(no_below=min_wordcount, no_above=max_freq)
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
# Bag-of-words representation of the documents.
print(dictionary.token2id)
Traceback (most recent call last):
File "D:/AtmodelEnd/AtmodelEnd.py", line 70, in <module>
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.
File "D:\Python3.6.4\lib\site-packages\gensim\corpora\dictionary.py", line 104, in __getitem__
return self.id2token[tokenid] # will throw for non-existent ids
KeyError: 0
_ = dictionary[0] # This sort of "initializes" dictionary.id2token.???
print(_)
人体
_ = dictionary[3] # This sort of "initializes" dictionary.id2token.???
print(_)
成本
from gensim import corpora
corpus = [dictionary.doc2bow(doc) for doc in docs]
# corpora.MmCorpus.serialize('/AtmodelEnd/deerwester.mm', corpus) # store to disk, for later use
# 1 2 1 在第一篇文档中,编号为2的词出现1次
>>> corpus = [[(1, 0.5)], []] # make one document empty, for the heck of it
>>> corpora.MmCorpus.serialize('/tmp/corpus.mm', corpus)
>>> corpus = corpora.MmCorpus('/tmp/corpus.mm')
>>> print(corpus)
MmCorpus(2 documents, 2 features, 1 non-zero entries)
# 生成字典,prune_at的作用为控制向量的维数,也就是说最多能为2000000个词语进行向量化
# dictionary = corpora.Dictionary(texts,prune_at=2000000)
# 遍历字典
# print dictionary.keys() #返回所有词语的编号
# print dictionary.dfs #{单词id,在多少文档中出现}
# print dictionary.get(5) #返回编号对应的词语,例如这里5->特性。
# print dictionary.compactify() #压缩词语向量,如果使用了filter_extremes,filter_n_most_frequent,filter_tokens(去掉停用词)等删除词典元素的操作,可以使用该方法进行压缩,remove gaps in id sequence after words that were removed
# print dictionary.num_docs #所有文章数目
# print dictionary.num_nnz #每个文件中不重复词个数的和
# print dictionary.num_pos #所有词的个数
# print(dictionary)
for key in dictionary.iterkeys():
print key,dictionary.get(key),dictionary.dfs[key]
# 1 在 1
# 5 还要 1
# 0 我 3
# 2 玉龙雪山 3
# 3 喜欢 1
# 4 去 1
# 过滤字典
# dictionary.filter_extremes(no_below=2, no_above=0.8,keep_n=3 ) #过滤字典,过滤词的出现数量小于2,词频>0.8,且只取前3项
# dictionary.filter_n_most_frequent(2) #过滤出现次数最多的前两个词语
# dictionary.filter_tokens(good_ids=[0]) #good_ids=[0,2]表示仅保留编号为0,2的词语,bad_ids=[1,3]表示要删除编号为1,3的词语
# # 如果想要过滤掉出现次数为1的词,可以使用以下代码
# ids=[]
# for key in dictionary.iterkeys():
# if dictionary.dfs[key]==1:
# ids.append(key)
# dictionary.filter_tokens(bad_ids=ids)
# print "过滤后:"
# for key in dictionary.iterkeys():
# print key,dictionary.get(key),dictionary.dfs[key]
# # 保存语料库,保存的格式有多种形式, Market Matrix,Joachim’s SVMlight、Blei’s LDA-C、GibbsLDA++
# # 将向量化后的词典保存,保存后生成两个文件,一个corpora.mm,分别(文章序号(从1开始),词向量编号,次出现的次数),一个corpora.mm.index
# corpus_list = [corpus]
# corpora.MmCorpus.serialize('D:\\machinetest\\gensim\\corpora.mm', corpus_list)
# # corpora.SvmLightCorpus.serialize('D:\\machinetest\\gensim\\corpora.svmlight', corpus_list)
# # corpora.BleiCorpus.serialize('D:\\machinetest\\gensim\\corpora.lda-c', corpus_list)
# # corpora.LowCorpus.serialize('D:\\machinetest\\gensim\\corpora.low', corpus_list)
# # 加载语料库
# corpus_2 = corpora.MmCorpus('D:\\machinetest\\gensim\\corpora.mm')
# # corpus_2 = corpora.MmCorpus('D:\\machinetest\\gensim\\corpora.svmlight')
# # corpus_2 = corpora.MmCorpus('D:\\machinetest\\gensim\\corpora.lda-c')
# # corpus_2 = corpora.MmCorpus('D:\\machinetest\\gensim\\corpora.low')
# print type(corpus_2)
# # <class 'gensim.corpora.mmcorpus.MmCorpus'>
# # 需要转换成list
# corpus_list_2 = list(corpus_2)
# print corpus_list_2
# # [[(0, 1.0), (2, 2.0), (3, 1.0), (4, 1.0)]]
# # 合并语料库
# merged_corpus = itertools.chain(corpus1, corpus2)
中文字体对应的英文表达
宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
隶书 LiSu
幼圆 YouYuan
华文细黑 STXihei
华文楷体 STKaiti
华文宋体 STSong
华文中宋 STZhongsong
华文仿宋 STFangsong
方正舒体 FZShuTi
方正姚体 FZYaoti
华文彩云 STCaiyun
华文琥珀 STHupo
华文隶书 STLiti
华文行楷 STXingkai
华文新魏 STXinwei