文本数据如何转换成计算机能够计算的数据
1. 词袋模型(Bag of Words Model)
把文本(段落或者文档)看作无序的集合,忽略语法和单词的顺序,计算每个单词出现的次数
实战步骤:
例如有三句话语料
["机器学习带动人工智能飞速的发展。",
"深度学习带动人工智能飞速的发展。",
"机器学习和深度学习带动人工智能飞速的发展。"
]
1.引入 jieba 分词器、语料和停用词集合
2.对语料进行分词操作,用到 lcut() 方法:
3.去掉停用词和标点符号
4.把所有的分词放到一个袋子(List)里面,取并集,去重,得到特征词结果
['飞速', '的', '深度', '人工智能', '发展', '和', '机器', '学习', '带动']
5.最后得到三句话的词袋向量
[[1, 1, 0, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 1, 0, 0, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1]]
2. 词向量 (Word Embedding)
One-Hot Encoder
向量的长度为整个语料库的大小,每个单词的向量在它自己对应位置上的数值为1,其他位置上为0
这样的词向量看不出词语之间可能存在的关联关系
形成的矩阵过于稀疏,会造成维度灾难。
Word2Vec
是 Google 团队2013年推出的,被广泛应用在自然语言处理任务中
主要包含两种模型:Skip-Gram 和 CBOW
可以将 One-Hot Encoder 转化为低维稠密向量
相似单词之间的距离比较近
学习资料:
《中文自然语言处理入门实战》