nlp 中文短文本分類
wordcloud 製作詞云
import jieba
import pandas as pd
import numpy as np
from scipy.misc import imread
from wordcloud import wordcloud,imagecolorgenerator
import matplotlib.pyplot as plt
#定義檔案路徑
dir = "d://programdata//pythonworkspace//study//"
#定義語料檔案路徑
file = "".join([dir,"z_m.csv"])
#定義停用詞檔案路徑
stop_words = "".join([dir,"stopwords.txt"])
#定義wordcloud中字型檔案的路徑
simhei = "".join([dir,"simhei.ttf"])
#讀取語料
df = pd.read_csv(file, encoding='utf-8')
df.head()
#如果存在nan,刪除
df.dropna(inplace=true)
#將content一列轉為list
content=df.content.values.tolist()
#用jieba進行分詞操作
segment=
for line in content:
try:
segs=jieba.cut_for_search(line)
segs = [v for v in segs if not str(v).isdigit()]#去數字
segs = list(filter(lambda x:x.strip(), segs)) #去左右空格
#segs = list(filter(lambda x:len(x)>1, segs)) #長度為1的字元
for seg in segs:
if len(seg)>1 and seg!='\r\n':
except:
print(line)
continue
#分詞後加入乙個新的dataframe
words_df=pd.dataframe()
#載入停用詞
stopwords=pd.read_csv(stop_words,index_col=false,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')
#安裝關鍵字groupby分組統計詞頻,並按照計數降序排序
words_stat=words_df.groupby(by=['segment'])['segment'].agg()
words_stat=words_stat.reset_index().sort_values(by=["計數"],ascending=false)
#分組之後去掉停用詞
words_stat=words_stat[~words_stat.segment.isin(stopwords.stopword)]
#下面是重點,繪製wordcloud詞云,這一提供2種方式
#第一種是預設的樣式
wordcloud=wordcloud(font_path=simhei,background_color="white",max_font_size=80)
word_frequence =
wordcloud=wordcloud.fit_words(word_frequence)
plt.imshow(wordcloud)
wordcloud.to_file(r'wordcloud_1.jpg') #儲存結果
#第二種是自定義
text = " ".join(words_stat['segment'].head(100).astype(str))
abel_mask = imread(r"china.jpg") #這裡設定了一張中國地圖
wordcloud2 = wordcloud(background_color='white', # 設定背景顏色
mask = abel_mask, # 設定背景
max_words = 3000, # 設定最大現實的字數
font_path = simhei, # 設定字型格式
width=2048,
height=1024,
scale=4.0,
max_font_size= 300, # 字型最大值
random_state=42).generate(text)
# 根據生成詞云顏色
image_colors = imagecolorgenerator(abel_mask)
wordcloud2.recolor(color_func=image_colors)
# 以下**顯示
plt.imshow(wordcloud2)
plt.axis("off")
plt.show()
wordcloud2.to_file(r'wordcloud_2.jpg') #儲存結果
NLP中文短文字處理記錄(一)
nlp短文字處理 nlp之文字清洗 nlp一些常用詞 待讀文章 第二天學習 寫 前要想好資料該用什麼格式輸出,最好在紙上畫出來,然後想如何能實現 read csv 讀取含中文的csv檔案時,encoding utf 8 或 gb18030 會遇到有的行無法讀出,增加引數error bad lines...
中文NLP知識總結
一 詞袋模型 分詞 去停用詞 消除數字 英文,得到若干詞語的集合。二 詞典 詞語和其索引id的一一對應關係。假設共有n個詞語。三 one hot編碼 在詞典基礎上,分詞之後的文章的詞頻向量。可以看成是m n的單詞 文件矩陣a。a i,j 第i篇文章中詞典索引為j的詞語出現的次數,即詞頻tf。refe...
nlp 中文資料預處理
資料載入 預設csv格式 import pandas as pd datas pd.read csv test.csv header 0,index col 0 dataframe n datas data.to numpy ndarray 轉成numpy更好處理 個人喜好 去除空行def dele...