【发布时间】:2014-07-17 12:49:39
【问题描述】:
我正在使用 PythonInterpreter 的 jython 从 java 代码中调用 python 代码。 python代码只是标记句子:
import nltk
import pprint
tokenizer = None
tagger = None
def tag(sentences):
global tokenizer
global tagger
tagged = nltk.sent_tokenize(sentences.strip())
tagged = [nltk.word_tokenize(sent) for sent in tagged]
tagged = [nltk.pos_tag(sent) for sent in tagged]
return tagged
def PrintToText(tagged):
output_file = open('/Users/ha/NetBeansProjects/JythonNLTK/src/jythonnltk/output.txt', 'w')
output_file.writelines( "%s\n" % item for item in tagged )
output_file.close()
def main():
sentences = """What is the salary of Jamie"""
tagged = tag(sentences)
PrintToText(tagged)
pprint.pprint(tagged)
if __name__ == 'main':
main()
我收到了这个错误:
run:
Traceback (innermost last):
(no code object) at line 0
File "/Users/ha/NetBeansProjects/JythonNLTK/src/jythonnltk/Code.py", line 42
output_file.writelines( "%s\n" % item for item in tagged )
^
SyntaxError: invalid syntax
BUILD SUCCESSFUL (total time: 1 second)
如果我在 python 项目中打开它但从 java 调用它会触发此错误,则此代码工作得很好。我该如何解决?
提前致谢
更新:
我已按照@User 的建议将行编辑为output_file.writelines( ["%s\n" % item for item in tagged] ),但我收到了另一条错误消息:
Traceback (innermost last):
File "/Users/ha/NetBeansProjects/JythonNLTK/src/jythonnltk/Code.py", line 5, in ?
ImportError: no module named nltk
BUILD SUCCESSFUL (total time: 1 second)
【问题讨论】:
-
这对我来说似乎是一个错误。尝试
output_file.writelines(( "%s\n" % item for item in tagged ))和output_file.writelines([ "%s\n" % item for item in tagged ])并考虑举报。 -
@User 我按照你说的做了,我收到一条新的错误消息。我已经用新的错误更新了我的问题。谢谢!
标签: java python netbeans jython