使用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中的else if语句返回语法错误   http如何解析从表单到REST Java/Webservice的post请求   java如何在SpringBoot中为RestTemplate编写JUnit测试   java动态检查实例是否实现接口   java在Android中使用ArrayAdaptor时,数据不会显示   根据前序遍历返回二进制树的java方法   Arquillian测试类中的java注入始终为空   用户界面Java Swing自定义控件   java使用CompletableFutures递归地从同一函数的多个调用构建列表   在Java中将“.00”添加到整数BigDecimal   卡夫卡java未知\u主题\u或\u部分错误间歇性   java为什么我的getString()方法总是返回null?   java renameTo无法重命名文件   java为什么我可以强制转换对象?可以用其他对象来完成吗?   带有回写条件的java多根记录器   关于stackoverflow错误的java帮助?   java Websphere消息队列多线程   Java图形窗口/画布未垂直显示完整的六边形网格   java Sakai未在Tomcat服务器中启动