初试python gensim 库

做文本主题抽取,刚开始觉得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……报了好久的格式错误,半天才发现……

转载于:https://my.oschina.net/DDigimon/blog/1120342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值