簡單NLP分析套路(3)---- 視覺化展現與語料收集整理
阿新 • • 發佈:2018-12-09
文章大綱
構思這個系列的初衷是很明顯的,之前我是從圖論起家搞起了計算機視覺,後來發現深度學習下的計算機視覺沒的搞了,後來正好單位的語料很豐富就嘗試了NLP 的一些東西,早期非常痴迷於分詞等等的技術,後來發現NLP 裡面是有廣闊天地的。
如果你現在開啟微信,可能很多公眾號都在推送從哪裡爬取了一些語料資料如下圖,
原文連結:透過評論看Runningman
比如豆瓣電影的評論,對某某最新上映的電影做了如下一些分析,看起來花花綠綠很是高階,當然我們也能做,而且要做的更高階一些!!!
系列文章:
1.基於分散式的短文字命題實體識別之----人名識別(python實現)
視覺化
詞雲
wordCloud
# encoding: utf-8
'''
@author: season
@contact: [email protected]
@file: wordCloud.py
@time: 2018/11/6 22:38
@desc:
'''
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba
import jieba.analyse
import pandas
import os
def file_name(file_dir,extension):
L = []
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == extension:
L.append(os.path.join(root, file))
return L
file_list = file_name('blog/','.txt')
print (file_list)
def get_all_strFromTxt(file_name):
str_blog = ''
with open(file_name,'r',encoding='utf-8') as f:
str_blog = f.read()
return str_blog
# file_path = u'''0.csv'''
# col_names = ["index","1","2"]
# data = pandas.read_csv(file_path, names=col_names, header = 0,engine='python', dtype=str,encoding='utf-8')
# # 返回前n行
# # 返回前n行
# first_rows = data.head(n=2)
# print(first_rows)
#
# data.info()
#
#
#
top_word_dict = {}
def getTopkeyWordsTFIDF(stop_word_file_path,topK=100,content = ''):
try:
jieba.analyse.set_stop_words(stop_word_file_path)
tags = jieba.analyse.extract_tags(content, topK, withWeight=True,allowPOS=('ns', 'n', 'vn', 'v'))
for v, n in tags:
print (v + '\t' + str((n )))
top_word_dict[v] = n*100
except Exception as e:
print(e)
finally:
pass
def getTopkeyWordsTextRank(stop_word_file_path,topK=100,content = ''):
try:
jieba.analyse.set_stop_words(stop_word_file_path)
tags = jieba.analyse.textrank(content, topK, withWeight=True)
for v, n in tags:
print (v + '\t' + str(int(n )))
except Exception as e:
print(e)
finally:
pass
str_summary = ''
#
# for i in range(0, len(data)):
# #print(data.iloc[i]['line_remark'])
# str_summary = str_summary+data.iloc[i]['line_remark']
#
for i in file_list:
str_summary = str_summary + get_all_strFromTxt(i)
text_from_file_with_apath = str_summary
getTopkeyWordsTFIDF('stop_words.txt',150,text_from_file_with_apath)
stop_words = [' ','掛號']
# 可以指定字型,或者按照詞頻生成
def show_WordCloud(str_all):
wordlist_after_jieba = jieba.cut(str_all, cut_all=True)
wl_space_split = " ".join(wordlist_after_jieba)
my_wordcloud = WordCloud(background_color = "white",width = 1000,height = 860,font_path = "msyh.ttc",
# 不加這一句顯示口字形亂碼
margin = 2,
max_words=150, # 設定最大現實的字數
stopwords=stop_words,# 設定停用詞
max_font_size=250,# 設定字型最大值
random_state=50# 設定有多少種隨機生成狀態,即有多少種配色方案
)
#my_wordcloud = my_wordcloud.generate(wl_space_split)
my_wordcloud = my_wordcloud.generate_from_frequencies(top_word_dict)
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
show_WordCloud(text_from_file_with_apath)
演算法 0.08393536068790623
影象 0.06798005803851344
資料 0.05240655130424626
文件 0.05059459998147416
博主 0.05050301638484851
使用 0.04356879903615233
函式 0.042060415733978916
查詢 0.04005136456931241
匹配 0.037386342706479996
程式碼 0.03603846563455227
方法 0.034559914773027035
節點 0.033931860083514016
特徵 0.03291738415318488
進行 0.031490540413372146
排序 0.029646884115013712
計算 0.029533756683699914
需要 0.029447451266380476
執行緒 0.02876913122420475
畫素 0.028464105792597654
模型 0.027687724999548125
檔案 0.027195920887218235
欄位 0.026565494216139303
結果 0.025830152697758277
視差 0.024437895533599558
資訊 0.02390653201451686
分片 0.02315742689824399
文章 0.02157718425850839
處理 0.02109550803266701
學習 0.021005721546578465
定義 0.02056261379145052
實現 0.02039579088457056
引數 0.02036164789518406
問題 0.020284272744458855
使用者 0.019859257580053805
返回 0.019832118152486682
分詞 0.019801132262955684
建立 0.019597880527283076
系統 0.019390564734465893
版權 0.018984989081581773
時候 0.018884022674800702
轉載 0.01866584359633088
檢測 0.018436606839486752
包含 0.017926737352527033
矩陣 0.017271551959541505
安裝 0.0171156281612187
資料庫 0.016960979586574783
主題模型
行業語料庫
保險行業語料庫
https://github.com/Samurais/insuranceqa-corpus-zh/wiki
醫學健康類語料庫
中國疾病知識圖譜
http://med.ckcest.cn/knowledgeGraph.jsp
疾病科學資料庫:
http://med.ckcest.cn/resource/scientificData.html
中國醫院大全:
http://yyk.qqyy.com/search.html
99醫院庫(醫療評分):
https://yyk.99.com.cn/
藥物臨床試驗登記與資訊公示平臺
http://www.chinadrugtrials.org.cn/eap/clinicaltrials.prosearch