赞
踩
数据集提取:
公众号:YOLO的学习进阶日常 然后回复:nlp1
本人 win10 python3.7 用的CPU
import paddle.fluid
paddle.fluid.install_check.run_check()
Running Verify Fluid Program ...
Your Paddle Fluid works well on SINGLE GPU or CPU.
Your Paddle Fluid works well on MUTIPLE GPU or CPU.
Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now
“结巴”中文分词:做最好的 Python 中文分词组件
参考网站:https://github.com/fxsjy/jieba
import jieba
jieba.enable_paddle()
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for str in strs:
seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式
print("Paddle Mode: " + '/'.join(list(seg_list)))
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print(", ".join(seg_list))
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print(", ".join(seg_list))
Paddle enabled successfully...... 2020-02-26 10:46:23,867-DEBUG: Paddle enabled successfully...... Building prefix dict from the default dictionary ... 2020-02-26 10:46:23,925-DEBUG: Building prefix dict from the default dictionary ... Loading model from cache C:\Users\ASUS\AppData\Local\Temp\jieba.cache 2020-02-26 10:46:23,927-DEBUG: Loading model from cache C:\Users\ASUS\AppData\Local\Temp\jieba.cache Paddle Mode: 我/来到/北京清华大学 Paddle Mode: 乒乓球/拍卖/完/了 Paddle Mode: 中国科学技术大学 Loading model cost 0.876 seconds. 2020-02-26 10:46:24,802-DEBUG: Loading model cost 0.876 seconds. Prefix dict has been built successfully. 2020-02-26 10:46:24,803-DEBUG: Prefix dict has been built successfully. Full Mode: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学 Default Mode: 我/ 来到/ 北京/ 清华大学 他, 来到, 了, 网易, 杭研, 大厦 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, ,, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
import jieba.analyse
result = jieba.tokenize(u'永和服装饰品有限公司')
for tk in result:
print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
word 永和 start: 0 end:2
word 服装 start: 2 end:4
word 饰品 start: 4 end:6
word 有限公司 start: 6 end:10
import jieba
import jieba.posseg as pseg
words = pseg.cut("我爱北京天安门") #jieba默认模式
jieba.enable_paddle()
words = pseg.cut("我爱北京天安门",use_paddle=True) #paddle模式
for word, flag in words:
print('%s %s' % (word, flag))
Paddle enabled successfully......
2020-02-26 10:48:16,044-DEBUG: Paddle enabled successfully......
我 r
爱 v
北京 LOC
天安门 LOC
jieba 采用延迟加载,import jieba 和 jieba.Tokenizer() 不会立即触发词典的加载,一旦有必要才开始加载词典构建前缀字典。如果你想手工初始 jieba,也可以手动初始化。
import jieba
jieba.initialize() # 手动初始化(可选)
jieba.set_dictionary() #你可以改变主词典的路径:
语料地址:https://github.com/fangj/rmrb/tree/master/example/1946%E5%B9%B405%E6%9C%88
import os import jieba from collections import Counter import math filepath='D:\\AA\\C\\deepmind\\AI' files=os.listdir(filepath) s='' for i in files: file="D:\\AA\\C\\deepmind\\AI\\{}".format(i) try: with open(file,encoding='utf-8') as f: iter_f = iter(f) str = "" for line in iter_f: str = str + line except: with open(file,encoding='gbk') as f: iter_f = iter(f) str = "" for line in iter_f: str = str + line s=s+str
因为这个数据有很多符号,所以这里先进行清理
然后进行停用词处理 最后再分词
def remove_punctuation(line): if line.strip()=='': return '' rule = re.compile(u"[^a-zA-Z0-9\u4E00-\u9FA5]") line = rule.sub('',line) return line re_file=remove_punctuation(s) def stopwordslist(filepath): stopwords = [line.strip() for line in open(filepath, 'r', encoding='gbk').readlines()] return stopwords stopwords = stopwordslist("D:\\AA\\C\\deepmind\\Data game\\nlp\\1 O2O food\\stopwords.txt") re_file= " ".join([w for w in list(jb.cut(re_file)) if w not in stopwords]) new_list = re_file.split(" ") from os import path from wordcloud import WordCloud import matplotlib.pyplot as plt backgroud_Image = plt.imread('D:\\AA\\20180905112216706.png') wc= WordCloud(background_color="white", mask=backgroud_Image, stopwords=stopwords, font_path='C:\Windows\Fonts\STZHONGS.TTF') wc.generate(re_file) plt.figure(figsize=(6,6)) plt.imshow(wc,interpolation="bilinear") plt.axis("off") plt.show()
信息熵个人理解就是,信息的混乱程度。信息是系统有序程度的一个度量,熵是系统无序程度的一个度量,从信息传播的角度来看,信息熵可以表示信息的价值;
其中,x表示随机变量,与之相对应的是所有可能输出的集合,定义为符号集,随机变量的输出用x表示。P(x)表示输出概率函数。
word_fre= Counter(new_list)
count= 0
for i in word_fre:
word_fre[i] /= len(new_list)
x= word_fre[i]
count+= x * math.log(x, 2)
count= -count
print("信息熵:", count)
信息熵: 12.619504395855172
我们团队旨在建设并发布高质量的技术文章和技术社区去储备人才,输送人才,有对大数据人工智能感兴趣的朋友可以加我们的QQ群呀~(我们平时会推送一些免费的课程,每周都有技术分享会欢迎大家参与)
我们的技术社区的网址:https://discourse.qingxzd.com/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。