Swivel

Swivel

今天尝试了解swivel算法,下载源码
尝试运行它.

Swivel算法

互信息计算公式
对于X_ij=0

Swivel是如何工作的?

  • 统计字典、同现矩阵(矩阵中是两个词同现的次数)
  • 重组同现矩阵(chop it into smaller pieces) 为了并行执行
  • 为每个word和每个contex,指定一个固定维数的random embedding vector
  • 迭代近似 点PMI和vector的点积。

需要注意的是,同现矩阵是非常稀疏的,对于罕见词,可能是没有足够的样本数据去发现他们共现,也可能是,常见词,但是我们没有观察到他们同现。Swivel 尝试去捕获这种没有同现的情况,通过observed和un-observed同现,去调整词向量.根据经验,swivel会产生更好的词向量,尤其是对生僻词

swivel包括了哪些程序?

README

  • prep.py统计字典和同现.
  • swivel.py 根据同现矩阵生成swivel词向量. 生成两个text文件,行向量和列向量.
  • text2bin.py 把上一步生成的文件转化成二进制文件(快速加载,快速计算). 这个工具还可以把Glove和word2vec生成的向量转化成二进制.
  • nearest.py 手动检查binary embeddings.
  • eval.mk 一个GNU makefile, fill retrieve and 标准化常见的问题集.
  • wordsim.py and analogy 执行问题集.
  • fastprep 和prep.py一样,但是基于C++.

怎么运行swivel?

TODO LIST

  • swivel的pmi是如何计算的?
  • swivel的同现矩阵是如何统计的?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow Hub是一个开源的库,它提供了多个预训练的模型和数据集,可以用于各种机器学习任务。在本例子中,我们将使用TensorFlow Hub来加载一个已经训练好的文本嵌入模型,然后将其应用于情感分析任务。 首先,我们需要导入必要的库: ```python import tensorflow as tf import tensorflow_hub as hub import numpy as np ``` 然后,我们定义一个情感分析模型: ```python def sentiment_analysis(text): module_url = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1" embed = hub.KerasLayer(module_url, output_shape=[20], input_shape=[], dtype=tf.string) model = tf.keras.Sequential() model.add(embed) model.add(tf.keras.layers.Dense(16, activation='relu')) model.add(tf.keras.layers.Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) model.load_weights('sentiment_analysis_model.h5') return model.predict([text])[0][0] ``` 在这个模型中,我们使用了一个已经训练好的文本嵌入模型`gnews-swivel-20dim`,它可以将输入的文本转换为20维的向量。然后,我们在这个模型的基础上构建了一个神经网络,使用ReLU作为激活函数,最终输出一个0到1之间的概率值,表示输入文本的情感极性。最后,我们加载了已经训练好的模型权重,以便我们可以直接使用这个模型进行预测。 最后,我们可以使用这个模型进行情感分析: ```python text = "I love this product" sentiment = sentiment_analysis(text) if sentiment > 0.5: print("Positive") else: print("Negative") ``` 在这个例子中,我们输入了一个文本“I love this product”,模型输出了一个0.9左右的概率值,表示这个文本是积极的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值