NLTK Python TypeError:“模块”对象不可调用

时间:2018-12-14 19:45:30

标签: python nltk

尝试运行以下代码:

import os
import nltk
from nltk import word_tokenize
from nltk.util import ngrams
from collections import Counter

nltk.data.path.append(os.path('/usr/local/share/nltk_data'))

with open('output.txt', 'r') as input:
    text = input.read()
    token = nltk.word_tokenize(text)
    unigrams = ngrams(token, 1)
    bigrams = ngrams(token, 2)
    trigrams = ngrams(token, 3)
    fourgrams = ngrams(token, 4)
    fivegrams = ngrams(token, 5)

    print(Counter(bigrams))

但是,从终端运行时出现以下错误:

Traceback (most recent call last):
  File "NGram.py", line 7, in <module>
    nltk.data.path.append(os.path('/usr/local/share/nltk_data'))
TypeError: 'module' object is not callable

我已经下载了所有NLTK软件包,并指向data.path.append()中的正确位置

2 个答案:

答案 0 :(得分:1)

您正在尝试在编写os.path时调用模块os.path('/usr/local/share/nltk_data')pathos模块中的一个 模块,您不能像调用函数那样调用该模块。您可能打算在osos.path中调用方法。

答案 1 :(得分:0)

如果'/usr/local/share/nltk_data'是数据所在的路径,请执行以下操作:

nltk.data.path = '/usr/local/share/nltk_data'

使用append()时,您将尝试使用os.path.append()库中的os