当前位置: 首页 > 面试题库 >

在python nltk中计算n-gram频率

董庆
2023-03-14
问题内容

我有以下代码。我知道我可以使用apply_freq_filter函数过滤掉少于频率计数的搭配。但是,在决定设置过滤频率之前,我不知道如何获取文档中所有n-
gram元组(在我的情况下为bi-gram)的频率。如您所见,我正在使用nltk搭配类。

import nltk
from nltk.collocations import *
line = ""
open_file = open('a_text_file','r')
for val in open_file:
    line += val
tokens = line.split()

bigram_measures = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tokens)
finder.apply_freq_filter(3)
print finder.nbest(bigram_measures.pmi, 100)

问题答案:

finder.ngram_fd.viewitems()功能有效



 类似资料:
  • 问题内容: 我正在使用NLTK在语料库中搜索n- gram,但是在某些情况下会花费很长时间。我已经注意到,计算n元语法在其他软件包中并不罕见(显然,Haystack具有某些功能)。如果我放弃NLTK,这是​​否意味着可以以更快的方式在语料库中查找n- gram?如果是这样,我可以使用什么来加快速度? 问题答案: 由于您没有指明是想要单词级还是字符级的n-gram,因此我将假设前者,而不会失去一般性

  • 问题内容: 如何生成字符串的n元语法,例如: 我想用此输入生成n-gram: 输出应为: 用Java给出一些想法,如何实现它,或者是否有可用的库。 我正在尝试使用此NGramTokenizer,但它给出了n- gram的字符序列,而我想要n-gram的单词序列。 问题答案: 您正在寻找ShingleFilter。 更新:链接指向版本3.0.2。在更高版本的Lucene中,此类可能位于不同的包中。

  •   一个n-gram是一个包含n个tokens(如词)的序列。NGram可以将输入特征 转换为n-grams。   NGram输入一系列的序列,参数n用来决定每个n-gram的词个数。输出包含一个n-grams序列,每个n-gram表示一个划定空间的连续词序列。 如果输入序列包含的词少于n,将不会有输出。 import org.apache.spark.ml.feature.NGram val w

  • 问题内容: 我想使用HiveQL创建一个n-gram列表。我的想法是使用带正则表达式和split函数的正则表达式-但这不起作用,但是: 输入是表格的一列 输出应该是: Hive中有一个n-gram udf,但是该函数直接计算n-gram的频率-我想改为列出所有n-gram的列表。 在此先多谢! 问题答案: 这可能不是最佳的解决方案,但却是可行的解决方案。用定界符分割句子(在我的示例中是一个或多个空

  • 本文向大家介绍在Python程序中计算n + nn + nnn +…+ n(m次),包括了在Python程序中计算n + nn + nnn +…+ n(m次)的使用技巧和注意事项,需要的朋友参考一下 我们将编写一个程序,用Python计算以下系列。检查我们要编写的程序的示例输入和输出。 因此,我们将有两个数字,并且我们必须计算如上 生成的序列之和。请按照以下步骤实现输出。 算法 您必须创建一个通用

  • 最近,我一直在尝试用斯坦福核心NLP来训练n-gram实体。我遵循了以下教程--http://nlp.stanford.edu/software/crf-faq.shtml#b 这样,我就可以只指定unigram标记和它所属的类。有谁能引导我,让我把它延伸到n克。我正试图从聊天数据集中提取像电影名称这样的已知实体。 如果我误解了斯坦福教程,请指导我,同样的教程可以用于N克培训。