智联招聘的python岗位数据结巴分词(二)
上次获取第一次分词之后的内容了
但是数据数据量太大了 ,这时候有个模块就派上用场了collections模块的Counter类
Counter类:为hashable对象计数,是字典的子类。
然后使用most_common方法返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,排列是无确定顺序的。
def get_top_words(topn):
# 从out.txt中读取带词性的分词结果列表
words_with_attr = read_result()
# 要过滤掉的词性列表
stop_attr = ['a', 'ad', 'b', 'c', 'd', 'f', 'df', 'm', 'mq', 'p', 'r', 'rr', 's', 't', 'u', 'v', 'z']
# 过滤掉不需要的词性的词
words = [x[0] for x in words_with_attr if x[1] not in stop_attr]
# 获取topn的词并存入文件topn_words.txt,top_words_with_freq为一个字典,在生成词云的时候会用到,格式为:
# {'aa':1,'bb':2,'cc':3}
top_words_with_freq = get_topn_words(words=words, topn=topn)
return top_words_with_freq
def get_topn_words(words, topn):
c = Counter(words).most_common(topn) #获取topn列表
top_words_with_freq = {}
with open('top{0}_words.txt'.format(topn), 'w+') as f:
for x in c:
f.write('{0},{1}\n'.format(x[0], x[1]))
top_words_with_freq.setdefault(x[0],x[1])
return top_words_with_freq
接下来就是把这个topn的列表进行分词了

浙公网安备 33010602011771号