word2vec = Word2Vec([words], min_count=1, size=100)为什么报错__init__() got an unexpected keyword argument 'size'
时间: 2023-12-06 20:05:53 浏览: 164
这个错误可能是因为您使用的是旧版本的`Word2Vec`。在旧版本中,`size`参数被称为`vector_size`。因此,您可以尝试使用以下代码:
```
word2vec = Word2Vec([words], min_count=1, vector_size=100)
```
如果您使用的是较旧的版本,则需要更新到新版本。您可以使用以下命令在终端中安装最新版本:
```
pip install --upgrade gensim
```
然后在您的代码中导入最新版本的`Word2Vec`:
```
from gensim.models import Word2Vec
```
相关问题
import os import jieba import gensim from langconv import Converter from gensim.corpora import WikiCorpus # 定义LabeledLineSentence类 class LabeledLineSentence(object): def __init__(self, wkc): self.wkc = wkc self.wkc.metadata = True def __iter__(self): for content, (page_id, title) in self.wkc.get_texts(): yield gensim.models.doc2vec.TaggedDocument( words=[w for c in content for w in jieba.cut( Converter('zh-hans').convert(c))], tags=[title]) # 代码7-5 def train(): zh_name = 'data/zh-latest-pages-articles.xml.bz2' wkc = WikiCorpus(zh_name, lemmatize=False, dictionary={}) documents = LabeledLineSentence(wkc) model = gensim.models.Doc2Vec(documents, dm=0, dbow_words=1, size=192, window=8, min_count=19, iter=5, workers=8) # 使用Doc2Vec训练段落向量 model.save('tmp/zhwk_news.doc2vec') if __name__ == '__main__': if os.path.exists('tmp/zhwk_news.doc2vec') == False: print('开始训练模型') train() print('模型训练完毕') # 代码7-6 model = gensim.models.Doc2Vec.load('tmp/zhwk_news.doc2vec') print(model.dv.similarity('番茄', '西红柿')) # 相似度为0.55 print(model.dv.similarity('货车', '卡车')) # 相似度为0.78
这段代码使用了gensim库中的Doc2Vec模型来训练中文文本,训练时使用了中文维基百科的语料库,使用了jieba分词和langconv进行繁简体转换。训练完成后,保存在本地,并使用gensim中的Doc2Vec.load方法进行加载。最后,通过model.dv.similarity方法计算两个词的相似度,其中'番茄'和'西红柿'的相似度是0.55,'货车'和'卡车'的相似度是0.78。
python利用gensim函数用类实现Word2vec
以下是一个使用gensim函数实现Word2vec的Python类示例:
```python
from gensim.models import Word2Vec
class Word2VecModel:
def __init__(self, sentences, size=100, window=5, min_count=5, workers=4):
self.sentences = sentences
self.size = size
self.window = window
self.min_count = min_count
self.workers = workers
def train_model(self):
self.model = Word2Vec(sentences=self.sentences, size=self.size, window=self.window, min_count=self.min_count, workers=self.workers)
def get_similar_words(self, word, topn=10):
return self.model.wv.most_similar(word, topn=topn)
```
在上面的类中,我们使用了gensim的Word2Vec模型来训练我们的模型。我们将训练数据传递给构造函数,并使用train_model方法来训练模型。在训练模型后,我们可以使用get_similar_words方法来获取与给定单词相似的单词列表。
例如,我们可以使用以下代码来使用上述类:
```python
sentences = [['this', 'is', 'a', 'sentence'], ['this', 'is', 'another', 'sentence'], ['yet', 'another', 'sentence']]
model = Word2VecModel(sentences)
model.train_model()
similar_words = model.get_similar_words('sentence')
print(similar_words)
```
输出将是与“sentence”最相似的10个单词的列表。
请注意,我们可以通过调整构造函数中的参数来更改训练模型的方式。例如,我们可以更改size参数以改变词嵌入的维数,或将min_count参数设置为更高的值以忽略频率较低的单词。
阅读全文