Gensim是一个开源的Python库,专门用于处理文本数据和主题建模。 它提供了强大的工具来实现Word2Vec等词嵌入模型。 pip install gensim 中文举例 import jieba from gensim.models import Word2Vec text = "我爱自然语言处理,自然语言处理很有趣。" # 使用jieba进行分词 words = list(jieba.cut(text)) # 将分词结果转换为列表形式,因为Word2Vec模型需要以句子(单词列表)的形式输入 sentences = [words] #[['我', '爱', '自然语言', '处理', ',', '自然语言', '处理', '很', '有趣', '。']] Word2Vec参数 vector_size:词向量的维度,这里设置为100。 window:上下文窗口大小,表示当前单词和周围单词的关联范围,这里设置为5。 min_count:单词最少出现的次数,小于该次数的单词会被忽略,这里设置为1。 workers:训练时使用的线程数,这里设置为4。 model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4) vector = model.wv['自然语言'] print(vector) [-8.6196875e-03 3.6657380e-03 5.1898835e-03 5.7419385e-03 7.4669183e-03 -6.1676754e-03 1.1056137e-03 6.0472824e-03 -2.8400505e-03 -6.1735227e-03 -4.1022300e-04 -8.3689485e-03 -5.6000124e-03 7.1045388e-03 3.3525396e-03 7.2256695e-03 6.8002474e-03 7.5307419e-03 -3.7891543e-03 -5.6180597e-04 2.3483764e-03 -4.5190323e-03 8.3887316e-03 -9.8581640e-03 6.7646410e-03 2.9144168e-03 -4.9328315e-03 4.3981876e-03 -1.7395747e-03 6.7113843e-03 9.9648498e-03 -4.3624435e-03 -5.9933780e-04 -5.6956373e-03 3.8508223e-03 2.7866268e-03 6.8910765e-03 6.1010956e-03 9.5384968e-03 9.2734173e-03 7.8980681e-03 -6.9895042e-03 -9.1558648e-03 -3.5575271e-04 -3.0998408e-03 7.8943167e-03 5.9385742e-03 -1.5456629e-03 1.5109634e-03 1.7900408e-03 7.8175711e-03 -9.5101865e-03 -2.0553112e-04 3.4691966e-03 -9.3897223e-04 8.3817719e-03 9.0107834e-03 6.5365066e-03 -7.1162102e-04 7.7104042e-03 -8.5343346e-03 3.2071066e-03 -4.6379971e-03 -5.0889552e-03 3.5896183e-03 5.3703394e-03 7.7695143e-03 -5.7665063e-03 7.4333609e-03 6.6254963e-03 -3.7098003e-03 -8.7456414e-03 5.4374672e-03 6.5097557e-03 -7.8755023e-04 -6.7098560e-03 -7.0859254e-03 -2.4970602e-03 5.1432536e-03 -3.6652375e-03 -9.3700597e-03 3.8267397e-03 4.8844791e-03 -6.4285635e-03 1.2085581e-03 -2.0748770e-03 2.4403334e-05 -9.8835090e-03 2.6920044e-03 -4.7501065e-03 1.0876465e-03 -1.5762246e-03 2.1966731e-03 -7.8815762e-03 -2.7171839e-03 2.6631986e-03 5.3466819e-03 -2.3915148e-03 -9.5100943e-03 4.5058788e-03] len(vector) # 100 |
import jieba from gensim.models import Word2Vec # 示例文本 texts = ["我喜欢学习自然语言处理", "机器学习和深度学习是人工智能的一部分", "自然语言处理很有意思"] # 使用jieba进行分词 cut_texts = [list(jieba.cut(text)) for text in texts] # 训练Word2Vec模型 model = Word2Vec(cut_texts, vector_size=100, window=5, min_count=1, workers=4) # 查找与'学习'最相似的词 similar_words = model.wv.most_similar('学习') print(similar_words) [('深度', 0.21617145836353302), ('喜欢', 0.0931011214852333), ('人工智能', 0.09291722625494003), ('机器', 0.07963486760854721), ('和', 0.06285078078508377), ('是', 0.027064507827162743), ('的', 0.01613466814160347), ('处理', -0.010839181020855904), ('很', -0.027750367298722267), ('我', -0.041253406554460526)] 按相似程序降序排序,可以看到,前五个词都是喜欢附近出现过的词,离“学习”这个单词的距离较近 |
|
|
|