首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不是所有的二元语法都在gensim的‘`Phrases`’工具中创建?

为什么不是所有的二元语法都在gensim的‘`Phrases`’工具中创建?
EN

Stack Overflow用户
提问于 2020-02-07 15:30:55
回答 1查看 724关注 0票数 1

我使用gensim创建了一个二元模型,并尝试获取二元句子,但它没有选择所有的二元句子,为什么?

代码语言:javascript
复制
from gensim.models.phrases import Phrases, Phraser
phrases = Phrases(sentences, min_count=1, threshold=1)
bigram_model = Phraser(phrases)
sent = [u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
print(bigram_model[sent])
[u'the', u'mayor', u'of', u'new_york', u'was', u'there']

有没有人能解释一下如何获得所有的二元模型。

为什么只有'new_york‘而不是'the_mayor’和其他?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-08 02:16:45

Phrases算法通过统计分析来决定将哪些单词对提升为二元语法,统计分析将每个单词的基本频率分别与它们的频率一起进行比较。

因此,一些单词对将通过此测试,并进行组合,而其他单词对则不会。如果您没有获得预期的配对,那么可以使用Phrases类选项对算法进行一些调整,包括thresholdmin_count和至少一个备用评分机制。

但是,即使进行了最大限度的调整,它通常也不会创建我们作为自然语言使用者所感知的所有短语-因为它对语法或世界上实际上逻辑上相关的实体一无所知。它只知道训练文本中的频率统计信息。

因此,将会有一些我们认为是自然和可取的配对缺失,而它创建的配对则是我们认为不合逻辑的。尽管如此,即使有了这些不美观的配对-创建的文本看起来并不正确-转换后的文本通常在某些下游分类或信息检索任务中可以更好地工作。

如果您真的只想要所有可能的二元语法,那么这将是一个更简单的文本转换,不需要gensim的Phrases的多遍和内部统计数据收集。

但是,如果你真的想使用gensim的Phrases技术,它只有在有大量训练数据的情况下才会表现良好。玩具大小的文本,只有几十个单词,甚至是成千上万个单词的-or-不会给出好的结果。你会希望数百万到数千万的训练单词有一些机会真正检测到统计上有效的单词对。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60108919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档