NLTK Python TypeError: объект 'module' не вызывается - PullRequest
0 голосов
/ 14 декабря 2018

Попытка запустить приведенный ниже код:

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 голосов
/ 14 декабря 2018

Если '/usr/local/share/nltk_data' - это путь, по которому существуют ваши данные, просто выполните:

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

Когда вы используете append(), вы пытаетесь использовать os.path.append(), который является частью osбиблиотека.

0 голосов
/ 14 декабря 2018

Вы пытаетесь вызвать модуль os.path, когда пишете os.path('/usr/local/share/nltk_data').path - это модуль в модуле os, и вы не можете вызывать модуль так же, как функцию.Возможно, вы хотели вызвать метод в пределах os или os.path.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...