簡體   English   中英

如何在python / nltk中對bigrams的頻率進行排序

[英]how to sort frequency of bigrams in python / nltk

我是python和nltk的新手,我想在文本(字符串)中找到bigrams的頻率,然后將bigrams從最高頻率到最低頻率進行排序。 我使用以下方法找到了二元組和頻率:

tokens = nltk.word_tokenize(text)
bgs = nltk.bigrams(tokens
fdist = nltk.FreqDist(bgs)

但我不知道如何從最高頻率到最低頻率排序?

我知道這可能很容易,但我無法弄清楚。 希望有人能幫助我!

您可以嘗試使用兩個不同的列表保留 bigrams - 單詞及其值,您可以使用這些列表進行排序。 我分享了一個鏈接,希望對你的問題有用。

一個可以生成二元文本的示例程序

bigrams = nltk.bigrams(tokens)    
bigrams_freq = nltk.FreqDist(bigrams)       
words_bigrams = []
        values_bigrams = []
    
    for items in bigrams_freq.items() :
        words_bigrams.append(items[0])
        values_bigrams.append(items[1])
    
    def sort_them(w,v):
        values = []
        words = []
        ##add all words values
        for i in v :
            values.append(i)
        
            ##sort them the biggest -> smallest
        values.sort(reverse=True)
        
        ##add to an array these values words
        for i in values :
            words.append(w[i])

    sort(words_bigrams,valus_bigrams)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM