python-使用Gensim提取短语时出错
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-使用Gensim提取短语时出错,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2017字,纯文字阅读大概需要3分钟。
内容图文
![python-使用Gensim提取短语时出错](/upload/InfoBanner/zyjiaocheng/690/bffc47adea354e17b41db20594c31c6b.jpg)
我正在尝试使用Gensim中的短语来获取句子中的双字母组,如下所示.
from gensim.models import Phrases
from gensim.models.phrases import Phraser
documents = ["the mayor of new york was there", "machine learning can be useful sometimes","new york mayor was present"]
sentence_stream = [doc.split(" ") for doc in documents]
#print(sentence_stream)
bigram = Phrases(sentence_stream, min_count=1, threshold=2, delimiter=b' ')
bigram_phraser = Phraser(bigram)
for sent in sentence_stream:
tokens_ = bigram_phraser[sent]
print(tokens_)
即使将“ new”,“ york”捕获为“ new york”,也不会捕获“ machine”,将学习称为“ machine learning”
但是,在example shown in Gensim Website中,他们能够将“机器”,“学习”一词捕捉为“机器学习”.
在上面的示例中,请让我知道如何将“机器学习”作为二元组
解决方法:
gensim Phrases所使用的技术完全基于共现的统计:在同时受min_count影响并与阈值进行比较的公式中,单词出现的频率相对于单独出现的频率.
只是因为您的训练集有“ new”和“ york”彼此并发两次,而其他词(例如“ machine”和“ learning”)仅并发了一次,所以“ new_york”就变成了双语法例,并且其他配对则没有.而且,即使您确实找到了min_count和阈值的组合,也可以将’machine_learning’提升为一个双语法例,它也会将其他所有出现的双语法例配对在一起-这可能不是您想要的.
的确,要从这些统计技术中获得良好的结果,您需要大量不同的,现实的数据. (出于玩具大小的原因,玩具大小的示例可能在表面上成功或失败.)
即使那样,他们仍会错过一个人认为合理的组合,而使一个人不会组合.为什么?因为我们的头脑中有很多更复杂的方法(包括语法和现实知识)来确定何时成堆的单词代表一个概念.
因此,即使有了更多更好的数据,也要为无意义的n-gram做好准备.调整或判断模型是否在总体上改善您的目标,而不是针对您的敏感性进行任何单点检查或临时检查.
(关于参考的gensim文档注释,我非常确定,如果仅对其中列出的两个句子尝试“短语”,它将找不到任何期望的短语-而不是“ new_york”或“ machine_learning”.作为一个比喻性的示例,省略号…表示训练集更大,结果表明多余的未显示文本很重要,这仅仅是因为您在代码中添加了第三句话,因此可以检测到“ new_york”.使“ machine_learning”看起来更像是统计上无关的配对的示例,您的代码也可以促进“ machine_learning”.)
内容总结
以上是互联网集市为您收集整理的python-使用Gensim提取短语时出错全部内容,希望文章能够帮你解决python-使用Gensim提取短语时出错所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。