Python word_tokenize

Eda*_*Eda 2 python tokenize nltk

我是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)
Run Code Online (Sandbox Code Playgroud)

问题是程序没有给出任何错误或解决方案.它只是归还了这个

>>> ================================ RESTART ================================
>>> 
showing info http://nltk.github.com/nltk_data/
Run Code Online (Sandbox Code Playgroud)

我认为问题出在word_tokenize()上.如果你能提供帮助,我将不胜感激.谢谢.

Ffi*_*ydd 8

您的问题是您尝试nltk.download()在脚本中运行,并且GUI显示为隐藏在页面后面的某个位置.

通常,nltk.download()通常在Python解释器中运行,它允许您下载各种数据集和语料库(corpii?:P)以与nltk一起使用.您通常只需要执行一次此操作,只有在您想要更新语料库时才再次使用它.您不必每次运行脚本时都运行它.

假设您已经nltk.download()使用Python解释器,那么您将获得某种形式的GUI,或者如果您无法访问GUI(例如,如果您在没有X-forwarding的情况下进行了SSH),那么它将是命令行界面.您可以使用它来下载数据.我建议你只需要下载所有内容,除非你的空间太大了.

一旦你运行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)
Run Code Online (Sandbox Code Playgroud)

请注意,该命令nltk.FreqDist不是FreqDist,因为该函数位于nltk命名空间中.