我是 python 的新手。我试图找到我的文本的频率分布。这是代码,
import nltk
nltk.download()
import os
os.getcwd()
text_file=open(r"ecelebi\1.txt","r")
p = text_file.read()
words = nltk.tokenize.word_tokenize(p)
fdist= FreqDist(words)
print(fdist)
问题是程序没有给出任何错误或解决方案。它只是返回这个
>>> ================================ RESTART ================================
>>>
showing info http://nltk.github.com/nltk_data/
我认为问题在于 word_tokenize()。 如果您能提供帮助,我将不胜感激。 谢谢。
最佳答案
您的问题是您正在尝试运行 nltk.download()
在脚本中,GUI 似乎隐藏在页面后面的某处。
一般来说,nltk.download()
通常在 Python 解释器中运行,它允许您下载各种数据集和语料库(corpii?:P)以与 nltk 一起使用。你通常只需要这样做一次,如果你想更新你的语料库,只需要再次使用它。 您不必在每次运行脚本时都运行它。
假设您已经运行了 nltk.download()
在 Python 解释器中,那么您将获得某种形式的 GUI,或者如果您无法访问 GUI(例如,如果您在没有 X 转发的情况下使用 SSHd),那么它将是一个命令行界面。您可以使用它来下载数据。我建议您全部下载,除非空间不够用。
一旦你运行了nltk.download()
并下载您认为需要的所有内容,然后下面的代码应该可以工作。
import nltk
import os
os.getcwd()
text_file=open(r"ecelebi\1.txt","r")
p = text_file.read()
words = nltk.tokenize.word_tokenize(p)
fdist= nltk.FreqDist(words)
print(fdist)
注意命令是nltk.FreqDist
, 不是 FreqDist
, 因为函数在 nltk
中命名空间。
关于Python word_tokenize 化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759418/