- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python gensim使用word2vec词向量处理中文语料的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
word2vec介绍 。
word2vec官网:https://code.google.com/p/word2vec/ 。
简言之:词向量表示法让相关或者相似的词,在距离上更接近.
具体使用(处理中文) 。
收集语料 。
本文:亚马逊中文书评语料,12万+句子文本。 语料以纯文本形式存入txt文本。 注意: 理论上语料越大越好 理论上语料越大越好 理论上语料越大越好 重要的事情说三遍。 因为太小的语料跑出来的结果并没有太大意义.
分词 。
中文分词工具还是很多的,我自己常用的: - 中科院NLPIR - 哈工大LTP - 结巴分词 。
注意:分词文本将作为word2vec的输入文件.
分词文本示例 。
word2vec使用 。
python,利用gensim模块.
win7系统下在通常的python基础上gensim模块不太好安装,所以建议使用anaconda,具体参见: python开发之anaconda【以及win7下安装gensim】 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
直接上代码——
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:测试gensim使用,处理中文语料
时间:2016年5月21日 20:49:07
"""
from
gensim.models
import
word2vec
import
logging
# 主程序
logging.basicConfig(
format
=
'%(asctime)s : %(levelname)s : %(message)s'
, level
=
logging.INFO)
sentences
=
word2vec.Text8Corpus(u
"C:\\Users\\lenovo\\Desktop\\word2vec实验\\亚马逊中文书评语料.txt"
)
# 加载语料
model
=
word2vec.Word2Vec(sentences, size
=
200
)
# 默认window=5
# 计算两个词的相似度/相关程度
y1
=
model.similarity(u
"不错"
, u
"好"
)
print
u
"【不错】和【好】的相似度为:"
, y1
print
"--------\n"
# 计算某个词的相关词列表
y2
=
model.most_similar(u
"书"
, topn
=
20
)
# 20个最相关的
print
u
"和【书】最相关的词有:\n"
for
item
in
y2:
print
item[
0
], item[
1
]
print
"--------\n"
# 寻找对应关系
print
u
"书-不错,质量-"
y3
=
model.most_similar([u
'质量'
, u
'不错'
], [u
'书'
], topn
=
3
)
for
item
in
y3:
print
item[
0
], item[
1
]
print
"--------\n"
# 寻找不合群的词
y4
=
model.doesnt_match(u
"书 书籍 教材 很"
.split())
print
u
"不合群的词:"
, y4
print
"--------\n"
# 保存模型,以便重用
model.save(u
"书评.model"
)
# 对应的加载方式
# model_2 = word2vec.Word2Vec.load("text8.model")
# 以一种C语言可以解析的形式存储词向量
model.save_word2vec_format(u
"书评.model.bin"
, binary
=
True
)
# 对应的加载方式
# model_3 = word2vec.Word2Vec.load_word2vec_format("text8.model.bin", binary=True)
if
__name__
=
=
"__main__"
:
pass
|
运行结果 。
【不错】和【好】的相似度为: 0.790186663972 -------- 。
和【书】最相关的词有:
书籍 0.675163209438 书本 0.633386790752 确实 0.568059504032 教材 0.551493048668 正品 0.532882153988 没得说 0.529319941998 好 0.522468209267 据说 0.51004421711 图书 0.508755385876 挺 0.497194319963 新书 0.494331330061 很 0.490583062172 不错 0.476392805576 正版 0.460161447525 纸张 0.454929769039 可惜 0.450752496719 工具书 0.449723362923 的确 0.448629021645 商品 0.444284260273 纸质 0.443040698767 -------- 。
书-不错,质量- 精美 0.507958948612 总的来说 0.496103972197 材质 0.493623793125 -------- 。
不合群的词: 很 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/churximi/article/details/51472300 。
最后此篇关于python gensim使用word2vec词向量处理中文语料的方法的文章就讲到这里了,如果你想了解更多关于python gensim使用word2vec词向量处理中文语料的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
假设我有一个组织 ID 向量 let orgs = vec![1, 3, 14, 12]; 然后我调用 .iter()在 each 上获取每个组织的事件,其中函数 get_events_for()返回
这个问题已经有答案了: What are Rust's exact auto-dereferencing rules? (4 个回答) 已关闭 3 年前。 我很困惑为什么这个函数 get适用于 Vec
let a = vec![ vec![1, 2], vec![3, 4], vec![5, 6] ]; 怎么才能聚成一个Vec包含在所有 Vec 中的所有值s 在 a ? 最佳答案 您可以使用 fla
我在HashMap, Vec>中有数据,我想将该数据作为字节缓冲区(单个Vec)写入文件,然后从文件中读取回去并重建HashMap结构。 是否有建立像这样的平坦化和恢复 map 的算法?我可以将元数据
我正在寻找一种“使用rust ”的方式来将 Vec 累积到 Vec 中,以便将每个内部 Vec 的第一个元素加在一起,将每个 Vec 的每个第二个元素加在一起,等等......,并将结果收集到 Vec
我正在寻找一种“使用rust ”的方式来将 Vec 累积到 Vec 中,以便将每个内部 Vec 的第一个元素加在一起,将每个 Vec 的每个第二个元素加在一起,等等......,并将结果收集到 Vec
我正在尝试使用 selection_sort 创建一个已排序的向量,同时保留原始未排序的向量: fn main() { let vector_1: Vec = vec![15, 23, 4,
在 https://doc.rust-lang.org/std/vec/struct.Vec.html#method.iter , 我只能在页面左侧的索引侧边栏中找到iter。但是,找不到 iter_
我正在尝试从 Vec> 创建一个集合向量 ( Vec> ) .这是我目前的进展: use std::collections::BTreeSet; fn main() { // The data
我错过了向量向量初始化的一些东西。在第一种方法中,我尝试了这段代码: let mut landFirst: Vec> = Vec::with_capacity(width); for v in lan
我想设计一个类似于示例 here 的函数除了我的情况,iproduct 的参数数量在编译时是未知的。正如 here 所解释的那样,这在 python 中很容易完成。 . 我已经尝试使用 itertoo
我有一个我不明白的问题: fn cipher_with(key: &[u8], data: &[u8]) -> Vec { let data_len = 16; let mut dat
我刚开始学习 Rust,我偶然发现了这个愚蠢的问题: error: mismatched types: expected `&[u8]` but found `&collections::vec::V
这个问题在这里已经有了答案: How to filter a vector of custom structs? (1 个回答) 关闭 4 年前。 我有一个接受 &Vec 的函数(其中 Word 是
试图创建一个 HashMap 的数据库结构向量。每个Vec包含 Box . use std::collections::HashMap; trait Model { fn id(&self)
我正在编写一个使用 Vec> 的库类型以按列优先顺序存储数据(每个内部 Vec 代表一列)。用户可以创建 Vec>具有任何行和列长度,但所有列都被限制为相同的长度。 有时我需要高效地遍历 Vec>按行
在 GLSL 中我不明白什么是“in”和“out”变量,这是什么意思?这是我从教程中复制的代码示例。 // Shader sources const GLchar* vertexSource =
例如 [[5,6][2,3][2,5][2,9][1,6]]先按第一个元素升序排序,当一个元素相等时,按第二个元素降序排序,得到[1,6],[2,9],[2,5],[2,3] ],[5,6] 最佳答案
我正在尝试为类型为Vec>的向量创建可变的迭代器 迭代器代码: pub struct IterMut { iter: &'a mut Vec>, ix: usize, inne
我是 rust 编程的新手。我想用递归实现合并排序。这是我的代码: fn merge(a: &mut Vec, b: &mut Vec) -> Vec { let mut temp: Vec
我是一名优秀的程序员,十分优秀!