标签: gensim

Gensim在维基百科上训练word2vec - 预处理和参数

我正在尝试使用意大利维基百科" http://dumps.wikimedia.org/itwiki/latest/itwiki-latest-pages-articles.xml.bz2 " 从gensim训练word2vec模型

但是,我不确定这个语料库的最佳预处理是什么.

Gensim模型接受标记化句子列表.我的第一个尝试是使用Gensim的标准WikipediaCorpus预处理器.这提取每篇文章,删除标点符号并拆分空格.使用这个工具,每个句子都对应一个完整的模型,我不确定这个事实对模型的影响.

在此之后,我使用默认参数训练模型.不幸的是,在训练之后,似乎我没有想要获得非常有意义的相似之处.

对于此任务,维基百科语料库中最合适的预处理是什么?(如果这个问题太宽泛,请指点相关教程/文章帮助我)

这是我第一次试用的代码:

from gensim.corpora import WikiCorpus
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
corpus = WikiCorpus('itwiki-latest-pages-articles.xml.bz2',dictionary=False)
max_sentence = -1

def generate_lines():
    for index, text in enumerate(corpus.get_texts()):
        if index < max_sentence or max_sentence==-1:
            yield text
        else:
            break

from gensim.models.word2vec import BrownCorpus, Word2Vec
model = Word2Vec() 
model.build_vocab(generate_lines()) #This strangely builds a vocab of "only" 747904 words which is << than those reported in the literature 10M words
model.train(generate_lines(),chunksize=500)
Run Code Online (Sandbox Code Playgroud)

nlp gensim word2vec

16
推荐指数
1
解决办法
8375
查看次数

如何加快Gensim Word2vec模型加载时间?

我正在构建一个聊天机器人,所以我需要使用Word2Vec对用户的输入进行矢量化.

我正在使用谷歌300万字的预训练模型(GoogleNews-vectors-negative300).

所以我使用Gensim加载模型:

import gensim
model = gensim.models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
Run Code Online (Sandbox Code Playgroud)

问题是加载模型大约需要2分钟.我不能让用户等那么久.

那么我该怎么做才能加快加载时间呢?

我想过将300万个单词中的每一个及其相应的向量放入MongoDB数据库中.这肯定会加快速度,但直觉告诉我这不是一个好主意.

gensim word2vec deep-learning

16
推荐指数
3
解决办法
2万
查看次数

每次我在同一语料库上训练时,LDA模型会生成不同的主题

我正在使用python gensim从231个句子的小型语料库中训练潜在Dirichlet分配(LDA)模型.但是,每次重复该过程时,它都会生成不同的主题.

为什么相同的LDA参数和语料库每次都会生成不同的主题?

我如何稳定主题生成?

我正在使用这个语料库(http://pastebin.com/WptkKVF0)和这个停用词列表(http://pastebin.com/LL7dqLcj),这是我的代码:

from gensim import corpora, models, similarities
from gensim.models import hdpmodel, ldamodel
from itertools import izip
from collections import defaultdict
import codecs, os, glob, math

stopwords = [i.strip() for i in codecs.open('stopmild','r','utf8').readlines() if i[0] != "#" and i != ""]

def generateTopics(corpus, dictionary):
    # Build LDA model using the above corpus
    lda = ldamodel.LdaModel(corpus, id2word=dictionary, num_topics=50)
    corpus_lda = lda[corpus]

    # Group topics with similar words together.
    tops = set(lda.show_topics(50))
    top_clusters = …
Run Code Online (Sandbox Code Playgroud)

python nlp lda gensim topic-modeling

15
推荐指数
2
解决办法
1万
查看次数

使用word2vec时删除停用词

我一直在使用gensim的word2vec库尝试word2vec一段时间.我的问题是我是否必须从输入文本中删除停用词?因为,基于我最初的实验结果,我可以看到像'of','when'......(停用词)这样的词语,当我这样做时model.most_similar('someword')......

但是我没有看到任何提到word2vec需要删除停用词的地方?word2vec是否应该处理停用词,即使你不删除它们?

有什么必须做预处理事情(比如主题建模,你几乎必须要删除掉词)?

nlp gensim word2vec

15
推荐指数
2
解决办法
1万
查看次数

安装gensim时大量警告

我在Python中安装了gensim(通过pip).安装结束后,我收到以下警告:

C:\ Python27\lib\site-packages\gensim\utils.py:855:UserWarning:检测到Windows; 别名chunkize到chunkize_serial warnings.warn("检测到Windows;别名chunkize到chunkize_serial")

我怎么能纠正这个?

由于此警告,我无法从gensim.models导入word2vec.

我有以下配置:Python 2.7,gensim-0.13.4.1,numpy-1.11.3,scipy-0.18.1,pattern-2.6.

python gensim

15
推荐指数
2
解决办法
2万
查看次数

Gensim word2vec在python3缺少词汇

我正在使用Word2Vec的gensim实现.我有以下代码片段:

print('training model')
model = Word2Vec(Sentences(start, end))
print('trained model:', model)
print('vocab:', model.vocab.keys())
Run Code Online (Sandbox Code Playgroud)

当我在python2中运行它时,它按预期运行.最后的印刷品是词汇表中的所有单词.

但是,如果我在python3中运行它,我会收到一个错误:

trained model: Word2Vec(vocab=102, size=100, alpha=0.025)
Traceback (most recent call last):
  File "learn.py", line 58, in <module>
    train(to_datetime('-4h'), to_datetime('now'), 'model.out')
  File "learn.py", line 23, in train
    print('vocab:', model.vocab.keys())
AttributeError: 'Word2Vec' object has no attribute 'vocab'
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?gensim word2vec与python3不兼容吗?

python gensim word2vec

15
推荐指数
1
解决办法
1万
查看次数

可视化从gensim生成的word2vec

我使用gensim在我自己的语料库上训练了doc2vec和相应的word2vec.我想用t-sne用文字来形象化word2vec.如图所示,图中的每个点都有"单词".

我在这里看了一个类似的问题:t-sne on word2vec

在它之后,我有这个代码:

import gensim import gensim.models as g

from sklearn.manifold import TSNE
import re
import matplotlib.pyplot as plt

modelPath="/Users/tarun/Desktop/PE/doc2vec/model3_100_newCorpus60_1min_6window_100trainEpoch.bin"
model = g.Doc2Vec.load(modelPath)

X = model[model.wv.vocab]
print len(X)
print X[0]
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X[:1000,:])

plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
plt.show()
Run Code Online (Sandbox Code Playgroud)

这给出了一个带点但没有单词的图形.那是我不知道哪个点代表哪个词.如何用点显示单词?

data-visualization gensim scikit-learn word2vec

15
推荐指数
1
解决办法
1万
查看次数

如何从gensim中的Word2Vec模型中完全删除单词?

给出一个模型,例如

from gensim.models.word2vec import Word2Vec


documents = ["Human machine interface for lab abc computer applications",
"A survey of user opinion of computer system response time",
"The EPS user interface management system",
"System and human system engineering testing of EPS",
"Relation of user perceived response time to error measurement",
"The generation of random binary unordered trees",
"The intersection graph of paths in trees",
"Graph minors IV Widths of trees and well quasi ordering",
"Graph minors A survey"]

texts = [d.lower().split() for …
Run Code Online (Sandbox Code Playgroud)

python dictionary del gensim word2vec

15
推荐指数
2
解决办法
2371
查看次数

由于缺少 longintrepr.h 文件,Python 3.11 中的 Gensim 安装失败

操作系统:macOS Monterey 12.6 芯片:Apple M1 Python 版本:3.11.1

我尝试:

pip3 install gensim
Run Code Online (Sandbox Code Playgroud)

安装过程开始顺利,但在运行“clang”时最终失败。错误信息是:

clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.11/include/python3.11 -I/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/numpy/core/include -c gensim/models/word2vec_inner.c -o build/temp.macosx-10.9-universal2-cpython-311/gensim/models/word2vec_inner.o
      gensim/models/word2vec_inner.c:217:12: fatal error: 'longintrepr.h' file not found
        #include "longintrepr.h"
                 ^~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
Run Code Online (Sandbox Code Playgroud)

这个问题是在几个 github 帖子中提出的,归因于 cython 和 python 3.11 之间的一些不兼容性。但是,在 cython 更新之前,不会提出有关用户应该做什么的建议。我可能歪曲了 github 上讨论的细节,但我认为这就是要点。

有人可以帮我同时安装 gensim 吗?

谢谢。

我更新了 cython 和 aiohttp。后者是因为我看到过一篇文章,其中 aiohttp 安装失败的原因与我的相同(缺少“longintrepr.h”)。

没提升。“pip …

cython python-3.x gensim

15
推荐指数
3
解决办法
3万
查看次数

分层Dirichlet过程Gensim主题编号独立于语料库大小

我在一组文档上使用Gensim HDP模块.

>>> hdp = models.HdpModel(corpusB, id2word=dictionaryB)
>>> topics = hdp.print_topics(topics=-1, topn=20)
>>> len(topics)
150
>>> hdp = models.HdpModel(corpusA, id2word=dictionaryA)
>>> topics = hdp.print_topics(topics=-1, topn=20)
>>> len(topics)
150
>>> len(corpusA)
1113
>>> len(corpusB)
17
Run Code Online (Sandbox Code Playgroud)

为什么主题数量与语料库长度无关?

python nlp lda gensim

14
推荐指数
4
解决办法
8222
查看次数