您好,登錄后才能下訂單哦!
背景:
最近部門領導交給筆者一個任務,想要從記錄用戶聊天記錄的數據表中,找出用戶對哪些問題比較關心(即:用戶咨詢過程中問到的哪些詞語出現的頻率最高),以便后期適當的做些業務的調整,改變推廣策略等等
聊天記錄如下:
你好
想了解想美國的博士申請
今年就畢業。準備申請2020年的。打算申金融或者工商
正在準備中
有幾篇中文的。比較水。
還沒有。博士競爭激烈。打算多申一些學校。
那qq吧。1111111
謝謝
2222222
本科GPA一般。3.4的樣子
211
孟
學生
都行的
嗯好的
麻煩問下會先qq聯系吧
電話不一定能接到
嗯對
嗯
謝謝
思路:
使用jieba模塊的自定義詞庫對每條聊天記錄進行拆分(即:中文分詞),然后將每條分詞的結果存到中間表,最后對這張中間表進行結果的匯總。雖然jieba具備了新詞語的識別能力,但是詞庫中的詞語可能對于某個特定領域的詞語分詞的識別的不是特別令人滿意,使用自定義的關鍵詞庫,可以使分詞時保證更高的準確性。
源代碼:
cat userdict.txt
留學
出國
研究生
英國
美國
cat fenci_dictionary.py
import jieba.analyse
import pymysql
db = pymysql.connect(host='xx.xx.xx.xx',user='xxx',passwd='xxx',db='dbname',charset='utf8',connect_timeout=30)
cursor = db.cursor()
sql= 'SELECT msg from tablename where msg_type="g" limit 50'
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
? ? row = row[0]
? ? # UserDictionary Model
? ? jieba.load_userdict('userdict.txt')
? ? for i in jieba.cut(row):
? ? ? ? sql1 = 'insert into test.tmp_fenci_statistic(keywords) values("%s")' % i
? ? ? ? try:
? ? ? ? ? ? cursor.execute(sql1)
? ? ? ? ? ? db.commit()
? ? ? ? except:
? ? ? ? ? ? db.rollback()
db.close()
jieba介紹:
jieba分詞器安裝(就是一個Python模塊)
pip3 install jieba
jieba分詞添加自定義詞典:
如果詞庫中沒有特定領域的詞語,或者對于某個特定領域的關鍵詞不是識別的特別令人滿意,雖然jieba具備了新詞語的識別能力,但是我們可以自定義屬于自己的關鍵詞庫,以便在分詞時保證更高的準確性
語法:
jieba.load_userdict(filename)? ? #filename為自定義的詞典路徑
詞典格式:
一個詞占一行,可以包含三個部分,1:詞語,2:詞頻;3:詞性? 2、3 都可以省略,之間用空格隔開
例:
cat userdict.txt
留學
出國
研究生
英國
美國
題外:
jieba還支持全精確模式、全模式、搜索引擎模式的分詞功能,這些分詞功能,無絕對的優劣之分,主要看適不適用于業務分析。關于這部分的內容,如果讀者有興趣,請自行百度查閱吧。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。