初试python gensim 库
博客专区 > Digimon 的博客 > 博客详情
初试python gensim 库
Digimon 发表于8个月前
初试python gensim 库
  • 发表于 8个月前
  • 阅读 59
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: word2vec 尝试,lda尝试

做文本主题抽取,刚开始觉得word2vec挺厉害的,打算试一试,发现word2vec的函数包都在gensim里面。pip 安装以后就上路了。

import logging
#这是一个日志输出
logging.basicConfig(format='%(asctime)s:%(levelname)s: %(message)s',level=logging.INFO)
from gensim.models import word2vec
sentences=word2vec.Text8Corpus(u'E:\PyProgramma\GCTest\Source\\newtest.txt')
model=word2vec.Word2Vec(sentences,size=200)
print(model)
model.save(u'test.model')
try:
    y1=model.similarity(u"切合/v",u"实际/n")
except KeyError:
    y1=0
print(y1)

这里语料库是随便找了一个测测试用的,所以里面已经做过分词处理并且还做过磁性标注了,但是对跑通程序的影响是不大的。做出来还可以,测出来这两个词语相似度是0.6……算是跑通了。然后开始测自己做的语料库。 嗯,我自己的语料库是前面一个数字表示词是第几段话的,第二个是真实的词,中间空格读出

# coding:utf-8
f=open('E:\PyProgramma\GCTest\Source\\orign.txt','r',encoding='utf-8')
fin=open('E:\PyProgramma\GCTest\Source\\w2vo.txt','w',encoding='utf-8')
line=f.readline()
num=0
while line:
    #print(line)
    newnum,word=line.split()
    if(newnum!=num):
        print(word)
        word=word+'\n'
        fin.write(word)
    else:
        print(word,end=' ')
        word=word+' '
        fin.write(word)
    num=newnum
    line=f.readline()
    print(line)
f.close()
fin.close()

然而带入刚刚测好的代码里却发现基本所有参数都是0,原因是之前的测试语料库挺大的,约莫50M,而自己的才几个K…… 查了下API,http://radimrehurek.com/gensim/models/word2vec.html 发现word2vec还是用在词语检测比较好……但发现了gensim这个库有大量主题模型,很专注主题模型的样子…… 嗯,反正语料还没弄出来,就顺便看了下lda的包

from gensim import corpora,models,similarities
from gensim.models import word2vec,LdaModel
from gensim.corpora import Dictionary
from gensim.models.atmodel import AuthorTopicModel
train=[]
f=codecs.open('E:\PyProgramma\GCTest\Source\\w2vo.txt','r',encoding='utf8')
for line in f:
    line=line.split()
    train.append([w for w in line])
dictionary=corpora.Dictionary(train)
corpus=[dictionary.doc2bow(text) for text in train]
lda=LdaModel(corpus=corpus,id2word=dictionary,num_topics=10)
lda.print_topics(10)
lda.print_topic(10)

同样,自己的语料库太少了,跑出来是0,然而大语料库跑出来半天没反应……会很慢 导入文件是写作utf8而不是utf-8……报了好久的格式错误,半天才发现……

标签: 自然语言处理
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 33
博文 14
码字总数 12357
×
Digimon
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: