使用pmi和svd将单词转换为向量的库

svd2vec的Python项目详细描述


#SVD2vec

svd2vec是一个python库,用于将文档单词表示为向量。向量是使用pmi(逐点互信息)和svd(奇异值分解)创建的。

这个库实现了“通过从单词嵌入中吸取的经验改进分布相似性”中的建议(omer levy、yoav goldberg和ido dagan)。本文认为,传统的pmi和svd方法通过应用相同的超参数可以达到word2vec的效果。

文档可在[https://valentinp72.github.io/svd2vec/index.html](https://valentinp72.github.io/svd2vec/index.html)找到

###示例

`shell wget http://mattmahoney.net/dc/text8.zip-O text8.gz gzip -d text8.gz -f `

`python # Building >>> from svd2vec import svd2vec >>> documents = [open("text8","r").read().split(" ")] >>> svd = svd2vec(documents, window=2, min_count=100) `

`python # I/O >>> svd.save("svd.bin") >>> svd = svd2vec.load("svd.bin") `

`python # Similarities >>> svd.similarity("bad", "good") # 0.4156516999158368 >>> svd.similarity("monday", "friday") # 0.839529117681973 `

`python # Most similar words >>> svd.most_similar(positive=["january"], topn=2) # [('february', 0.6854849518368631), ('october', 0.6653385092683669)] >>> svd.most_similar(positive=['moscow','france'],negative=['paris'], topn=4) # [('russia', 0.6221746629754187), ('ussr', 0.6024809889985986), ('soviet', 0.5794180517326273), ('bolsheviks', 0.5365123080505297)] `

`python # Analogies >>> svd.analogy("paris", "france", "berlin") # [('germany', 0.6977716641680641), ...] >>> svd.analogy("road", "cars", "rail") # [('trains', 0.7532519174901262), ...] >>> svd.analogy("cow", "cows", "pig") # [('pigs', 0.6944101149919422), ...] >>> svd.analogy("man", "men", "woman") # [('women', 0.7471792753875327), ...] `

使用[gensim](https://pypi.org/project/gensim/)可以使用word2vec表示加载svd2vec模型: `python >>> from gensim.models.keyedvectors import Word2VecKeyedVectors >>> svd.save_word2vec_format("svd_word2vec_format.txt") >>> keyed_vector = Word2VecKeyedVectors.load_word2vec_format("svd_word2vec_format.txt") >>> keyed_vector.similarity("good", "bad") # 0.54922897 `

-

[根据单词嵌入的经验提高分布相似性](https://www.mitpressjournals.org/doi/abs/10.1162/tacl_a_00134)<;br>; omer levyyoav goldberg,和ido dagan<;br>; 计算语言学协会学报2015年第3卷,211-225<;br>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Facebook SDK如何正确覆盖onActivityResult()?   macos Java:与命令行应用程序通信   使用Spring引导和Java Web Start(JNLP)时出现异常   java自定义对象转换器JavaFx FXML   TestNG中数据参数化的java优化方法   java Android测验应用程序在更新分数时崩溃   java如何从角度正确地与servlet通信   获取java中当前窗口的位置   linux没有java中的pytorch_jni。图书馆路径   socket保持打开时的java打印缓冲区读取程序   java运行TestNG测试实例   java testng中是否有testFinished侦听器方法?   java将Android Studio升级到2.1.2,现在出现构建错误   Hibernate JPA2中的java空指针异常。0 joinMap   java HttpPost每5秒响应一次   java增加了@ElementCollection中元素的大小   具有PersistenceContext和LockType的java单例ejb。阅读   什么是多项式的次数f(n)=n/20