当前位置:   article > 正文

利用jieba实现分词、高频词统计、词性标注_利用jieba软件包对采集到1000条评论数据进行分词、词性标注

利用jieba软件包对采集到1000条评论数据进行分词、词性标注

小编学习nlp的起步阶段,今天利用python语言中的jieba包,实现了中文的分词、高频词统计、词性标注。我知道对于原理理解的重要性,迫不及待地把实现的过程记录在博客中,算法原理问题过后进行补充。


1、jieba分词

Jieba提供了三种分词模式:

  • 精确模式:视图将句子切分的最精确。
  • 全模式:把句子句子中,所有可以成词的词语都扫出来,速度快,但是不能解决歧义的问题。
  • 模糊模式:在精确模式的基础上,对长词再次进行切分,适合用于搜索引擎分词或者模糊查询。
import jieba
sent = "我们中出了一个叛徒"

seg_list = jieba.cut(sent,cut_all = False)
print("精确模式:","/".join(seg_list))

#output
精确模式:我们/中出//一个/叛徒          #=.=
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、高频词提取

高频词一般是指文档中出现频率较高的且非无用的词。这里解决一下两个问题:

  1. 对句子实现分词并且统计出现频率。
  2. 过滤掉频率较高且无用的词语或符号
def get_TF(words,topk = 5):
	
	tf_dic = {}
	for w in words:
		tf_dic[w] = tf_dic.get(w,0) + 1
	return sorted(tf_dic.items(),key = lambda x : x[1],reverse = True)[:topk]  #get top 10

def main():
	import glob
	import jieba
	import random
	stop_words = [',',"。","、","!","?","的","在","了","于"]
	sent = "中华人民共和国于1949年10月1日成立了,这一天我还没有出生,我出生于二十世纪九十年代,那时候,中华人民共和国已经经历了文化大革命、改革开放。我和我的祖国,一刻也不能分割。"
	split_words = list(x for x in jieba.cut(sent,cut_all = False) if x not in stop_words)
	tf = get_TF(split_words)
	print(tf)

main()

#output:
[('我',3),('中华人民共和国',2),('1949',1),('年',1),('10',1)]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

3、词性标注

通俗的讲,词性标注就是标出句子中的每一个词的语法属性,这样可以良好的解决歧义问题。Jieba的词性标注同样是结合规则和统计的方式,具体为在词性标注的工程中,词典匹配和HMM共同作用。

import jieba.posseg  as psg

sent = '中文分词是文本处理不可或缺的一步!'

seg_list = psg.cut(sent)

print(' '.join(['{0}/{1}'.format(w,t) for w,t in seg_list]))

#output
中文/nz 分词/n 是/v 文本处理/n 不可或缺/l 的/uj 一步/m !/x
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/355525
推荐阅读
相关标签
  

闽ICP备14008679号