2016-07-13 4 views
0

Я разрабатываю PHP-сайт. У меня есть дополнительное требование создать систему рекомендаций. В этом случае лучше всего подходит Python. Я уже разработал систему рекомендаций в python, и она работает хорошо. Теперь я хочу объединить систему рекомендаций python с моим PHP-сайтом. Когда я вызываю файл python с моей веб-страницы PHP, я получаю ошибку beloow.Ошибка NLTK с использованием php

Resource u'tokenizers/punkt/english.pickle' not found. Please 
    use the NLTK Downloader to obtain the resource: >>> 
    nltk.download() 

На данный момент у меня есть весь код на моем локальном сервере. Я использую PHP 5.6.19 и WAMP 3.0.4, Python 2.7.11 Может ли кто-нибудь помочь в решении этой проблемы?

+0

Если файл действительно, где он ищет, разрешения проверки –

+0

Добро пожаловать на переполнение стека! Укажите [Минимальный, полный пример] (http://stackoverflow.com/help/mcve). Еще одна полезная ссылка: [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) – xgord

+0

Спасибо за ваш быстрый ответ. Я переместил свой код на Python внутри своей корневой папки PHP-сайта. Я кладу. Я изменил разрешение trm (python folder) с помощью Full Control. У меня есть файл php_python.php внутри trm. Поэтому я вызываю файл call.py из файла php_python.php из того же каталога. –

ответ

0

Я нашел решение своей проблемы. Когда я запускал код из оболочки python, он смог найти папку «nltk_data», но она не смогла добраться до этой папки, когда пыталась выполнить такой же код с PHP. Я добавил путь «nltk_data» вручную, как показано ниже, в моем коде Python после импорта библиотек nltk и решил мою проблему.

import nltk nltk.data.path.append('c:/users/.../AppData/Roaming/nltk_data/')

+0

Хорошая работа. Действительно, nltk просматривает список стандартных местоположений для своих данных, поэтому перемещение или изменение пользователей вызывает проблемы. Поскольку вы первыми нашли решение проблемы, пожалуйста, «принимайте» свой собственный ответ, нажав на большой флажок слева. Он оценивает ваш вопрос как разрешенный. – alexis

0

nltk.download() должен запускаться из оболочки Python, которая была запущена с правами root. В Debian, например, su, (yourrootpassword)python и nltk.download(). Вы должны иметь возможность скачать все.

Импорт для NLTK НЕ ДОЛЖЕН использовать его. Вам необходимо загрузить все корпуса и токенизаторы, чтобы использовать его.

+0

Спасибо за ваш ответ @Ares. Когда я выполняю свой код в оболочке python, он работает отлично. Проблема в том, когда я вызываю этот файл python из своего php-файла. Ты можешь помочь мне с этим ? –

+0

Не могли бы вы отредактировать код, который вы использовали в Python и PHP, в исходный вопрос? – Ares

+0

Я не могу добавить весь код, но я загрузил свой код на Git. Не могли бы вы скачать его здесь: https://github.com/mitulparekh90/temp/tree/master/Collaborative –

Смежные вопросы