1.训练词向量代码如下:
#训练词语为向量表示
def w2v_train(self): ques = self.cu.execute('select question from activity')#将所有问题内容作为预料训练一个w2v模型
da_all = []
for d in ques:
da_all.append(d[0])
sentences = self.get_text(da_all)
model = Word2Vec()
model.build_vocab(sentences)
model.train(sentences,total_examples = model.corpus_count,epochs = model.iter)
model.save("./tmp/user_w2corpus")
训练的结果为一个词一个向量
2.重新将某用户的每个问题取出来进行分词,然后聚类
def simmetric_topic_A(self,clust_num,userid):
from sklearn.cluster import KMeans
from sklearn.externals import joblib
texts=self.get_dict(userid)[1] # 词汇
texts_len=len(texts)
model = gensim.models.Word2Vec.load('./tmp/user_w2corpus')
texts_vec=[]#将每个计算完单个句子的向量的结果存储到该列表即返回句子向量
X=[]
for text in texts:#将每个句子循环一次
text_vec=np.zeros((100,))#由于默认的w2v训练得到的向量维度为100,所以初始化为100,开始初始化为0,但是如果该句子中只有一个词汇并且该词汇没有训练到,则维度无法与之前保持一致
for t in text:#每个句子中的每个词汇的向量求和
try:
# text_vec+=model[t]#得到句子向量
X.append(model[t])#将词加入X,某个词如果出现在多个文档中,则会加入X多次
except Exception as e:
print('训练的向量集合中没有留下该词汇',e)
3.发现聚类效果还可以,但是用来聚类的词由于每个问题中会有重复词,所以会导致最后用于聚类的词有很多一样的,于是我将词去重后重新聚类,但是效果却十分不好,聚类的质心根本没有达到想要的效果(质心对应的词不能代表该用户关注的某个主题),
而有重复词的却达到了我想要的效果,是因为样本量大的原因吗?但是我是通过计算词汇向量之间的相似度来聚类的,不过我控制了聚类个数,但是去重前后的词不变,按理说不该聚类中心变化不是吗???
 

基于w2v词向量聚类出现的问题(有待解决)的更多相关文章

  1. DNN模型训练词向量原理

    转自:https://blog.csdn.net/fendouaini/article/details/79821852 1 词向量 在NLP里,最细的粒度是词语,由词语再组成句子,段落,文章.所以处 ...

  2. 基于word2vec训练词向量(二)

    转自:http://www.tensorflownews.com/2018/04/19/word2vec2/ 一.基于Hierarchical Softmax的word2vec模型的缺点 上篇说了Hi ...

  3. 基于word2vec训练词向量(一)

    转自:https://blog.csdn.net/fendouaini/article/details/79905328 1.回顾DNN训练词向量 上次说到了通过DNN模型训练词获得词向量,这次来讲解 ...

  4. AAAI 2018 论文 | 蚂蚁金服公开最新基于笔画的中文词向量算法

    AAAI 2018 论文 | 蚂蚁金服公开最新基于笔画的中文词向量算法 2018-01-18 16:13蚂蚁金服/雾霾/人工智能 导读:词向量算法是自然语言处理领域的基础算法,在序列标注.问答系统和机 ...

  5. 文本情感分析(二):基于word2vec、glove和fasttext词向量的文本表示

    上一篇博客用词袋模型,包括词频矩阵.Tf-Idf矩阵.LSA和n-gram构造文本特征,做了Kaggle上的电影评论情感分类题. 这篇博客还是关于文本特征工程的,用词嵌入的方法来构造文本特征,也就是用 ...

  6. [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型

    深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...

  7. Deep Learning In NLP 神经网络与词向量

    0. 词向量是什么 自然语言理解的问题要转化为机器学习的问题,第一步肯定是要找一种方法把这些符号数学化. NLP 中最直观,也是到目前为止最常用的词表示方法是 One-hot Representati ...

  8. word2vec词向量训练及中文文本类似度计算

    本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...

  9. 词向量(one-hot/SVD/NNLM/Word2Vec/GloVe)

    目录 词向量简介 1. 基于one-hot编码的词向量方法 2. 统计语言模型 3. 从分布式表征到SVD分解 3.1 分布式表征(Distribution) 3.2 奇异值分解(SVD) 3.3 基 ...

随机推荐

  1. Amazon

    刚接到Recruiter电话,说恭喜,feedback都非常好. 心里大石落地,FLAG / UAT终于完成一家. 接下来就要加倍努力冲刺其他公司了. Mark: (入职以后一定要去地里补发一波面经, ...

  2. MUI 打包android app

    自有证书生成方法 manifest配置 (2).图标配置:所有图片格式必须是png,且严格符合分辨率要求.使用其他图片格式重命名为png会导致打包失败.配置图标时选择自动生成所有适用图标,选择一个大图 ...

  3. Threads vs. Tasks

    Posted on Friday, October 11, 2013 .Net has three low-level mechanisms to run code in parallel: Thre ...

  4. 在windows下安装git后没有ssh文件夹

    在windows7下安装git后,运行 cd ~/.ssh $ bash: cd: /c/Users/Administrator/.ssh: No such file or directory 出现以 ...

  5. SpringBoot(三)整合Redis

    spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化. redis介绍 Redis是目前业界使用最广泛的内存数据存储.相比memcached,Redis支持更丰富的数据结 ...

  6. 追踪go语言(golang)的新版本新特性【摘抄】

    Go 2.0 新特性展望:详细 go2.0 会有什么新特性呢?下图是一个老外的调侃,他不希望发生这样的事情(please don't make it happen).我倒是希望其中一些实现,比如泛型和 ...

  7. python concurrent.futures.Threadpoolexcutor的有界队列和无界队列

    1.默认是无界队列,如果生产任务的速度大大超过消费的速度,则会把生产任务无限添加到无界队列中,这样一来控制不了生产速度,二来是会造成系统内存会被队列中的元素堆积增多而耗尽. 2.改写为有界队列 cla ...

  8. [IR] Search Server - Sphinx

    使用 Sphinx 更好地进行 MySQL 搜索 - IBM 尽管 MySQL 是一个出色的通用数据库,但是如果您的应用程序需要进行大量搜索,那么使用 Sphinx 可获得更好的性能. 尽管 Sphi ...

  9. Tomcat启动报Error listenerStart错误 Context [] startup failed due to previous errors

    本文转载自xpenxpen 今天启动Tomcat启动不了,报以下错: org.apache.catalina.core.StandardContext startInternal SEVERE: Er ...

  10. Mysql 全文搜索 Match Against用法

    全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE ...