自然语言处理之动手学词向量

文本向量化

TF-IDF:(文本向量化,用来表示文本)

   

     分母加一:为了防止:分母为0

 衡量: 某个词在该篇文章中的重要性  ,可以查找文章关键字;通过计算词频的方式

txt_list列表为:
 ['愿 中国 青年 都 能 摆脱 冷气 , 只是 向上 走 , 不必 听 自暴自弃 者 流 的话 。 能 做事 的 做事 , 能 发声 的 发声 。', '有 一分 热 , 发一分光 , 就 令 萤火 一般 , 也 可以 在 黑暗 里发 一点 光 , 不必 等候 炬火 。 此后 如竟 没有 炬火 : 我 便是 唯一 的 光 。']

tfidf_model = TfidfVectorizer(token_pattern=r"(?u)\b\w+\b",max_features=10,max_df=0.6,stop_words=["是", "的"]).fit(txt_list)
print("\n词频统计:\n",tfidf_model.vocabulary_)
#通过它来表示文章
transfer_data = tfidf_model.fit_transform(txt_list)
print('\n得到tf-idf矩阵,稀疏矩阵表示:\n', transfer_data)

print("文本特征抽取的结果百分占比为:\n", transfer_data.toarray())
print("提取关键字,返回排名前10关键字:\n", tfidf_model.get_feature_names())

 参考:(115条消息) 文本向量化——基于TF-IDF词袋模型的文本向量化方法_小小小小U的博客-CSDN博客

然后:

计算文本相似度 (利用余弦公式)

基于支持向量机的新闻分类tf-idf

 
 

词的向量化

如何让计算机识别: 汉字

词向量

词的向量化 - zxclegend - 博客园 (cnblogs.com)

 

一、One-hot Representation

1.定义

这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。方法简单,然这种表示方法也存在一个重要的问题就是“词汇鸿沟”现象:任意两个词之间都是孤立的。从数学上解释,正交基的积为0。

每一个sample: 由3个词组成。   sample的特征向量表示:

 2.词袋模型:

 

优缺点:

+ 

 不能表示出:词与词之间的关系

 y维度灾难

one-hot: 是只有一个位置为1,其余位置为0的稀疏向量



二、weod2vec

也是一种词的表示  ;Word2vec(基本思想是把自然语言中的每一个词,表示成一个统一意义统一维度的短向量)

  • 两个算法:continuous bag-of-words (CBOW)和skip-gram。
  • CBOW是给定上下文环境时,预测该环境中间的那个中心词。(例如:我 爱 中国,利用 我 中国,预测 爱 )
  • Skip-gram正好相反,预测一个中心词上下文环境的分布,其图示如下。(
  • 两个训练方法:负采样(negative sampling)和分层softmax。
  • 是神经网络的一个副产物  (理解神经网络:)

weod2vec ,2个向量关于文本相似度的计算

将每一个词,从多个维度来表示它(下面数字)

 假设:

A B分别代表足球  篮球 ,那么在词向量空间中  (无论是在二维,还是高维上【50到300维,一般】,距离应该相近)

   

猜你喜欢

转载自blog.csdn.net/zr_xs/article/details/129431393