gpt4 book ai didi

python - NLTK 中的 FreqDist 不对输出进行排序

转载 作者:太空狗 更新时间:2023-10-29 22:00:07 24 4
gpt4 key购买 nike

我是 Python 的新手,我正在尝试自学语言处理。 python 中的 NLTK 有一个名为 FreqDist 的函数,它给出了文本中单词的频率,但由于某种原因它不能正常工作。

这是教程让我写的:

fdist1 = FreqDist(text1)
vocabulary1 = fdist1.keys()
vocabulary1[:50]

所以基本上它应该给我一个文本中 50 个最常用单词的列表。但是,当我运行代码时,结果是 50 个 最不 频繁出现的词,按照从最不频繁到最频繁的顺序排列,而不是相反。我得到的输出如下:

[u'succour', u'four', u'woods', u'hanging', u'woody', u'conjure', u'looking', u'eligible', u'scold', u'unsuitableness', u'meadows', u'stipulate', u'leisurely', u'bringing', u'disturb', u'internally', u'hostess', u'mohrs', u'persisted', u'Does', u'succession', u'tired', u'cordially', u'pulse', u'elegant', u'second', u'sooth', u'shrugging', u'abundantly', u'errors', u'forgetting', u'contributed', u'fingers', u'increasing', u'exclamations', u'hero', u'leaning', u'Truth', u'here', u'china', u'hers', u'natured', u'substance', u'unwillingness...]

我完全照搬教程,但我肯定做错了什么。

这是教程的链接:

http://www.nltk.org/book/ch01.html#sec-computing-with-language-texts-and-words

该示例就在“图 1.3:计算文本中出现的单词(频率分布)”标题下

有谁知道我该如何解决这个问题?

最佳答案

来自 NLTK's GitHub :

FreqDist in NLTK3 is a wrapper for collections.Counter; Counter provides most_common() method to return items in order. FreqDist.keys() method is provided by standard library; it is not overridden. I think it is good we're becoming more compatible with stdlib.

docs at googlecode are very old, they are from 2011. More up-to-date docs can be found on http://nltk.org website.

因此对于 NLKT 版本 3,请使用 fdist1.most_common(50) 而不是 fdist1.keys()[:50]

tutorial 也已更新:

fdist1 = FreqDist(text1)
>>> print(fdist1)
<FreqDist with 19317 samples and 260819 outcomes>
>>> fdist1.most_common(50)
[(',', 18713), ('the', 13721), ('.', 6862), ('of', 6536), ('and', 6024),
('a', 4569), ('to', 4542), (';', 4072), ('in', 3916), ('that', 2982),
("'", 2684), ('-', 2552), ('his', 2459), ('it', 2209), ('I', 2124),
('s', 1739), ('is', 1695), ('he', 1661), ('with', 1659), ('was', 1632),
('as', 1620), ('"', 1478), ('all', 1462), ('for', 1414), ('this', 1280),
('!', 1269), ('at', 1231), ('by', 1137), ('but', 1113), ('not', 1103),
('--', 1070), ('him', 1058), ('from', 1052), ('be', 1030), ('on', 1005),
('so', 918), ('whale', 906), ('one', 889), ('you', 841), ('had', 767),
('have', 760), ('there', 715), ('But', 705), ('or', 697), ('were', 680),
('now', 646), ('which', 640), ('?', 637), ('me', 627), ('like', 624)]
>>> fdist1['whale']
906

关于python - NLTK 中的 FreqDist 不对输出进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com