我正在使用nltk
python 做一个自然语言处理项目。项目块结构如下:
- 接口(在 php 中)->
- [NLP 引擎](在 python 中)->
- API 调用(在 php 中)->
- 结果(在 php 中)
输入应该通过 GET 方法从 PHP 接口传递到 Python 引擎。
背景:
我url=/linguistics/
使用 Easy-PHP Dev Server ( Location=D:\Computational_Linguistics
) 创建了一个虚拟主机 () 服务器。我已启用它,以便它可以执行Test.py
,这样当我键入时linguistics/Test.py
,它就会执行。
问题:
基本的 CGI 已成功执行,我可以在 Chrome 中看到输出。但是当我导入另一个模块时,它返回了这个错误:
服务器错误!
服务器遇到内部错误,无法完成您的请求。
错误消息:标题之前的脚本输出结束:engine.py
如果您认为这是服务器错误,请联系网站管理员。
错误 500
语言学 Apache/2.4.4 (Win32) PHP/5.5.0
当我不导入 nltk (或任何其他非标准包)时,它可以工作。
我确实进行了网络搜索以找到解决方案,并且知道我必须设置一些环境变量才能使其工作。 但是,我不知道怎么做。
我的代码:
#!C:/Python27/python.exe
import nltk
from nltk import *
import re
import cgi, cgitb
inpt=cgi.FieldStorage()
str_in = inpt.getvalue('query')
def is_noun (str):
tags=nltk.pos_tag(nltk.word_tokenize(str))
for i in tags:
if i[1][1]=='N' or i[1][1]=='V': #Finding out the Nouns and the Verbs.
print "<h5>%s is a noun.<h5>" %i[0]
is_noun(str_in)
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - Second CGI Program</title>"
print "</head>"
print "<body>"
is_noun(str_in)
print "</body>"
print "</html>"