【问题标题】:Create bigrams using a list of unigrams使用 unigrams 列表创建 bigrams
【发布时间】:2022-11-22 10:42:50
【问题描述】:

我有一个 unigrams 列表 `

[('bottom', 507.95),
 ('straight', 426.5),
 ('comment', 415.5),
 ('wearing', 398.55),
 ('room', 397.85),
 ('wondering', 396.85),
 ('difficult', 382.85),
 ('sleeping', 381.65),
 ('comments', 381.1),
 ('looked', 379.0),
 ('interest', 378.2),
 ('missing', 373.5),
 ('harder', 373.1),
 ('planning', 370.05),
 ('answer', 367.15),
 ('allowed', 364.85),
 ('bunch', 361.0),
 ('recommend', 360.45),
 ('worst', 359.3),
 ('technically', 359.15)]

`

而且我必须用这个词制作双字母组,函数 nltk.bigrams 将输出(底部直),(直评论)等。我不知道是否可以形成所有不同的双字母组并丢弃那些没有意义,例如“睡眠困难”比“穿着 cmets”更有意义。

目前我正在考虑使用 gensim 但我没有找到有用的功能。

【问题讨论】:

    标签: nlp nltk gensim


    【解决方案1】:

    生成每一个从这些词中可能的二元组很容易——尽管如果你有的话,那将是N^2双字母,其中大部分惯于是在真实文本中合理地表示对的二元组。

    更典型的是从真实的、有意义的文本语料库开始——然后收集/统计实际出现的二元组。通常,自然使用频率是二元语法“敏感性”的真正最佳指标。

    如果出于某种原因你真的需要服用随机的bigrams,并评估它们是否代表合理的概念或是否可能出现在某些真实的自然文本中,并且您没有自己的语料库,可能会使用一些迂回的启发式方法,也许使用来自的数据其他源(它们本身是从大型语料库中手工创建或训练的)。但这不是通常的练习,也不是一组限制……所以要获得更多建议,它会帮助您更多地说明为什么您有这样一个特殊的目标。

    【讨论】:

    • 我正在对抑郁症进行分类,我使用两种类型的列表,它们是我用于 BOW 构造的单词“词典”,我正在做基线,而 sklearn 实施的一些最佳结果有双字母组和三字母组.因此,要查看我用作字典的单词是否合适,必须将它们转换为双字母组。
    猜你喜欢
    • 2012-08-28
    • 2011-04-04
    • 2019-01-18
    • 2023-03-12
    • 2015-11-26
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多