基于百度aip主题提取的文本主题聚类

场景大量的文本留言,有短文本有长文本,我们如何搞笑提取文本主题?如上图 知道view 如何获取topics

解决办法:

1文本分类 

2,主题提取

3,主题聚类

4,主题输出

from sklearn.cluster import DBSCAN
import jieba.posseg
import jieba.analyse
import pandas as pd 
import numpy as np
from baidu_aip import getCommentTag,get_emo
from kashgari.tasks.classification import CNNLSTMModel
import participle as p

df = pd.read_csv('filename')
df['viewn']=df['view'].apply(p.transferred)
df['vl'] = df['viewn'].apply(p.get_wordslist)
df['vl']=df['vl'].apply(lambda x:np.NaN if len(x)==0 or ''.join(x)=='' else x)
df = df[df['vl'].notnull()].copy()
model = CNNLSTMModel()
Model = model.load_model('modelfile')
df['pro'] = Model.predict(df['vl'])
from bert_serving.client import BertClient
bc = BertClient(check_length=False)
df['name'] = df['view'].apply(getCommentTag)
df['emo'] = df['view'].apply(get_emo)

n_id=[]
n_name = []
for i in range(len(df)):
    for word in df['name'][i]:
        n_id.append(i)
        n_name.append(word)
        
    
dfn = pd.DataFrame({'id':n_id,'topic':n_name})
vec = bc.encode(dfn['topic'])

clst = DBSCAN()
predict_labels = clst.fit_predict(vec).tolist()
dfn['cl'] = predict_labels
dfn.to_csv('filename')

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值