文字資料分析——主題提取+詞向量化
使用Python 進行簡單文字類資料分析,包括:
1. 分詞
2. 生成語料庫,tfidf加權
3. lda主題提取模型
4. 詞向量化word2vec
參考:
http://zhuanlan.zhihu.com/textmining-experience/1963076
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import MySQLdb
import pandas as pd
import pandas.io.sql as sql
import jieba
import nltk
import jieba.posseg as pseg
from gensim import corpora, models, similarities
import re
# import logging
# logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s',level=logging.INGO)
# reload(sys)
# sys.setdefaultencoding('utf-8')
if name == 'main':
#使用者詞典匯入
jieba.load_userdict("F:\userdict.txt")
#1. 讀取資料
conn = MySQLdb.connect(host='', port=3306, charset='utf8',user='', passwd='', db='')
df = sql.read_sql('select * from test',conn)
conn.close()
cont = df['commcont']
#示例資料(電商評論):
0 標籤:洗衣機不錯操作簡單全自動不錯心得:洗衣機很滿意!洗寶寶衣服的!小巧方便!!
1 標籤:洗衣時間短脫水聲音小脫水很好噪音很小操作簡單心得:比超市便宜,挺好用的,床單也可以洗。
2 標籤:脫水很好脫水聲音小洗衣效果好心得:質量、設計都非常好,外觀也很漂亮。很滿意。要注意這款…
3 標籤:洗衣乾淨動力足洗衣效果好心得:比較小巧,非常不錯,大品牌有保障!!!
4 心得:很適合家庭使用小件的衣物及時就洗出來了方便
5 標籤:洗衣機不錯操作簡單心得:非常不錯的洗衣機,價格也還不錯,支援京東!
6 標籤:脫水很好操作簡單心得:給兒子買的脫水用,還不錯~~~~~~~~~
7 心得:很好的烘乾機,已經用了
8 標籤:操作簡單心得:說是防纏繞,不知道是怎麼個防纏繞法,脫水聲音超大,像是在撞牆一樣版本:6…
9 標籤:全自動不錯心得:買來送長輩的,還沒用,看起來還可以版本:6.5公斤
# 2. 簡單過濾某些特定詞
pattern = ur'標籤|心得'
regx = re.compile(pattern)
r = lambda x: regx.sub('',x)
filtercont = cont.map®
# 分詞+選詞
nwordall = []
for t in cont:
words =pseg.cut(t)
nword = ['']
for w in words:
if((w.flag == 'n'or w.flag == 'v' or w.flag == 'a') and len(w.word)>1):
nword.append(w.word)
nwordall.append(nword)
# 3. 選擇後的詞生成字典
dictionary = corpora.Dictionary(nwordall)
#print dictionary.token2id
# 生成語料庫
corpus = [dictionary.doc2bow(text) for text in nwordall]
#tfidf加權
tfidf = models.TfidfModel(corpus)
# print tfidf.dfsx
# print tfidf.idf
corpus_tfidf = tfidf[corpus]
# for doc in corpus_tfidf:
# print doc
# 4. 主題模型lda,可用於降維
#lda流式資料建模計算,每塊10000條記錄,提取50個主題
lda = models.ldamodel.LdaModel(corpus=corpus_tfidf, id2word=dictionary, num_topics=50, update_every=1, chunksize=10000, passes=1)
for i in range(0,3):
print lda.print_topics(i)[0]
#lda全部資料建模,提取100個主題
#lda = models.ldamodel.LdaModel(corpus=corpus_tfidf, id2word=dictionary, num_topics=100, update_every=0, passes=20)
#利用原模型預測新文字主題
# doc_lda = lda[corpus_tfidf]
#提取出的前3個主題的結果:
0.028算輕 + 0.028操作 + 0.027噪音 + 0.026不久 + 0.025送貨 + 0.025很好 + 0.024牌子 + 0.022簡單 + 0.021很小 + 0.020評價
0.047脫水 + 0.035聲音 + 0.034價效比 + 0.031起來 + 0.026經典 + 0.025不錯 + 0.024希望 + 0.022知道 + 0.020喜歡 + 0.020問題
0.056不用 + 0.032代買 + 0.029次數 + 0.024凍手 + 0.023稍差 + 0.022優點 + 0.022地方 + 0.021缺點 + 0.020皮膚 + 0.019送貨
#5. word2vec 詞向量化,可用於比較詞相似度,尋找對應關係,詞聚類
#sentences = models.word2vec.LineSentence(nwordall)
#size為詞向量維度數,windows視窗範圍,min_count頻數小於5的詞忽略,workers是執行緒數
model = models.word2vec.Word2Vec(nwordall, size=100, window=5, min_count=5, workers=4)
#model.save("F:\word2vecmodels") 建模速度慢,建議儲存,後續直接呼叫
#model = models.word2vec.Word2Vec.load("F:\word2vecmodels")
print model[u'洗衣']
#向量表示
sim = model.most_similar(positive=[u'洗衣', u'方便'])
#相近詞
for s in sim:
print "word:%s,similar:%s " %(s[0],s[1])
#找到“洗衣”和”方便“相似度高的詞
word:容量,similar:0.949171900749
word:動力,similar:0.946333944798
word:時間,similar:0.939984798431
word:乾淨,similar:0.918717443943
word:滾筒,similar:0.90215164423
word:外觀,similar:0.886778771877
word:功能,similar:0.882432937622
word:效果,similar:0.880518734455
word:聲音,similar:0.878705024719
word:電機,similar:0.878492772579
相關文章
- 資料分析主題討論
- 處理文字資料(上):詞袋
- Python提取文字檔案(.txt)資料的方法Python
- 影象主題色的提取
- 如何用Python從PDF檔案中提取文字詞彙Python
- 文字分析——分配單詞權重
- hanlp中文智慧分詞自動識別文字提取例項HanLP分詞
- 如何從資料庫提取海波龍的組織主資料資料庫
- NLPIR大資料平臺的文字資訊提取功能介紹大資料
- HanLP 關鍵詞提取演算法分析詳解HanLP演算法
- 關鍵詞提取
- 影象主題色提取演算法演算法
- 影像主題顏色提取(Median cut)
- Python文字資料分析與處理Python
- python讀取txt文字資料進行分詞並生成詞雲圖片Python分詞
- vim技巧--提取文字與文字替換
- 文字挖掘之語料庫、分詞、詞頻統計分詞
- ODPS主備叢集雙向資料複製導致主備中心網路打爆問題
- python 網頁文字提取Python網頁
- 萌新向Python資料分析及資料探勘 前言Python
- 如何做好文字關鍵詞提取?從三種演算法說起演算法
- 大資料分析——市場風向標大資料
- 小技巧!CSS 提取圖片主題色功能探索CSS
- 資料提取之jsonpathJSON
- ffmpeg提取aac資料
- 提取圖片文字的技巧
- Python提取文字指定內容Python
- Safari文字提取器:TextExtractor for Safari
- AUTOCAD——快速提取說明文字
- 向Mysql主鍵自增長表中新增資料並返回主鍵MySql
- Python遙感影像疊加分析:基於一景資料提取另一資料Python
- 分析提取出重組raid所需的資料後使用北亞自研資料AI
- 如何用Python從海量文字抽取主題?Python
- NLPIR在文字資訊提取方面的優勢介紹
- 高效的PDF文字提取技術
- Python 提取PDF文字和圖片Python
- 資料分析:複雜業務場景下,量化評估流程
- 如何用Python提取中文關鍵詞?Python